2024-06-05 16:02:00 +00:00
|
|
|
import { execSync } from 'child_process';
|
|
|
|
import { test, expect } from '@playwright/test';
|
2024-06-26 16:02:14 +00:00
|
|
|
import { clearEditor, focusEditor } from './utils/editor';
|
2024-06-05 16:02:00 +00:00
|
|
|
test.use({ storageState: 'playwright/.auth/certified-user.json' });
|
|
|
|
test.describe('multifileCertProjects', () => {
|
|
|
|
test.beforeEach(async ({ page }) => {
|
2024-07-21 16:41:32 +00:00
|
|
|
execSync('node ./tools/scripts/seed/seed-demo-user --certified-user');
|
2024-06-05 16:02:00 +00:00
|
|
|
await page.goto(
|
|
|
|
'learn/2022/responsive-web-design/build-a-tribute-page-project/build-a-tribute-page'
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2024-06-26 16:02:14 +00:00
|
|
|
const success =
|
|
|
|
/Your code was saved to the database\. It will be here when you return\./;
|
|
|
|
const tooFast =
|
|
|
|
/Slow Down! Your code was not saved\. Try again in a few seconds\./;
|
2024-06-05 16:02:00 +00:00
|
|
|
|
2024-06-26 16:02:14 +00:00
|
|
|
test('should save and reload user code', async ({
|
|
|
|
page,
|
|
|
|
isMobile,
|
|
|
|
browserName
|
|
|
|
}) => {
|
|
|
|
await focusEditor({ page, isMobile });
|
|
|
|
await clearEditor({ page, browserName });
|
2024-06-05 16:02:00 +00:00
|
|
|
|
|
|
|
await page.keyboard.type('save1text');
|
|
|
|
await expect(page.getByText('save1text')).toBeVisible();
|
|
|
|
|
2024-07-03 04:45:35 +00:00
|
|
|
await page
|
|
|
|
.getByRole('button', { name: !isMobile ? 'Save your Code' : 'Save' })
|
|
|
|
.click();
|
2024-06-05 16:02:00 +00:00
|
|
|
|
2024-06-26 16:02:14 +00:00
|
|
|
await expect(page.getByTestId('flash-message')).toContainText(success);
|
2024-06-05 16:02:00 +00:00
|
|
|
|
|
|
|
await page.reload();
|
|
|
|
|
2024-07-03 04:45:35 +00:00
|
|
|
await focusEditor({ page, isMobile });
|
|
|
|
|
2024-06-05 16:02:00 +00:00
|
|
|
await expect(page.getByText('save1text')).toBeVisible();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should save using ctrl+s hotkey and persist through navigation', async ({
|
|
|
|
page,
|
2024-06-26 16:02:14 +00:00
|
|
|
isMobile,
|
|
|
|
browserName
|
2024-06-05 16:02:00 +00:00
|
|
|
}) => {
|
2024-07-03 04:45:35 +00:00
|
|
|
test.skip(isMobile);
|
|
|
|
|
2024-06-05 16:02:00 +00:00
|
|
|
await focusEditor({ page, isMobile });
|
2024-06-26 16:02:14 +00:00
|
|
|
await clearEditor({ page, browserName });
|
2024-06-05 16:02:00 +00:00
|
|
|
|
|
|
|
await page.keyboard.type('save2text');
|
|
|
|
await expect(page.getByText('save2text')).toBeVisible();
|
|
|
|
|
|
|
|
await page.keyboard.down('Control');
|
|
|
|
await page.keyboard.press('KeyS');
|
|
|
|
|
2024-06-26 16:02:14 +00:00
|
|
|
await expect(page.getByTestId('flash-message')).toContainText(success);
|
2024-06-05 16:02:00 +00:00
|
|
|
|
|
|
|
await page.getByRole('button', { name: 'Close' }).click();
|
|
|
|
|
|
|
|
await expect(page.getByText('save2text')).toBeVisible();
|
|
|
|
|
|
|
|
await page.reload();
|
|
|
|
|
|
|
|
await expect(page.getByText('save2text')).toBeVisible();
|
|
|
|
await focusEditor({ page, isMobile });
|
|
|
|
|
|
|
|
await page.keyboard.down('Control');
|
|
|
|
await page.keyboard.press('KeyS');
|
|
|
|
|
2024-06-26 16:02:14 +00:00
|
|
|
await expect(page.getByTestId('flash-message')).toContainText(tooFast);
|
2024-06-05 16:02:00 +00:00
|
|
|
});
|
|
|
|
});
|