You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
2.2 KiB
49 lines
2.2 KiB
import {MockedApi, initialize} from '../utils/e2e';
|
|
import {buildMember} from '../utils/fixtures';
|
|
import {expect, test} from '@playwright/test';
|
|
|
|
test.describe('Main form', async () => {
|
|
let mockedApi: MockedApi;
|
|
|
|
async function initializeTest(page, options = {}) {
|
|
mockedApi = new MockedApi({});
|
|
mockedApi.setMember(buildMember({}));
|
|
|
|
return await initialize({
|
|
mockedApi,
|
|
page,
|
|
publication: 'Publisher Weekly',
|
|
...options
|
|
});
|
|
}
|
|
|
|
test('hides header by default', async ({page}) => {
|
|
const {frame} = await initializeTest(page);
|
|
await expect(frame.locator('[data-testid="main-form"]')).toBeVisible();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).not.toBeVisible();
|
|
});
|
|
|
|
test('shows header when focused', async ({page}) => {
|
|
const {frame} = await initializeTest(page);
|
|
await frame.locator('[data-testid="main-form"] [data-testid="form-editor"]').click();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).toBeVisible();
|
|
});
|
|
|
|
test('hides header when blurred', async ({page}) => {
|
|
const {frame} = await initializeTest(page);
|
|
await frame.locator('[data-testid="main-form"] [data-testid="form-editor"]').click();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).toBeVisible();
|
|
await page.locator('body').click();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).not.toBeVisible();
|
|
});
|
|
|
|
test('keeps showing header when blurred with unpublished changes', async ({page}) => {
|
|
const {frame} = await initializeTest(page);
|
|
await frame.locator('[data-testid="main-form"] [data-testid="form-editor"]').click();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).toBeVisible();
|
|
await frame.locator('[data-testid="main-form"] [data-testid="form-editor"]').pressSequentially('Some text');
|
|
await page.locator('body').click();
|
|
await expect(frame.locator('[data-testid="main-form"] [data-testid="form-header"]')).toBeVisible();
|
|
});
|
|
});
|