Skip to content

Commit afa2629

Browse files
marioleandrobrianchandotcom
authored andcommitted
LPD-78030 Reorganize test structure with beforeEach/afterEach and added assertions before clicks to reduce flakiness
1 parent c7bdf71 commit afa2629

1 file changed

Lines changed: 93 additions & 66 deletions

File tree

modules/test/playwright/tests/accessibility-menu-web/main/accessibilityMenuSmoke.spec.ts

Lines changed: 93 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {Page, expect, mergeTests} from '@playwright/test';
77

88
import {accessibilityMenuPagesTest} from '../../../fixtures/accessibilityMenuPagesTest';
99
import {apiHelpersTest} from '../../../fixtures/apiHelpersTest';
10+
import {featureFlagsTest} from '../../../fixtures/featureFlagsTest';
1011
import {instanceSettingsPagesTest} from '../../../fixtures/instanceSettingsPagesTest';
1112
import {isolatedSiteTest} from '../../../fixtures/isolatedSiteTest';
1213
import {loginTest} from '../../../fixtures/loginTest';
@@ -23,6 +24,9 @@ const test = mergeTests(
2324
isolatedSiteTest,
2425
siteSettingsPagesTest,
2526
systemSettingsPageTest,
27+
featureFlagsTest({
28+
'LPS-178052': {enabled: true},
29+
}),
2630
instanceSettingsPagesTest,
2731
virtualInstancesPagesTest,
2832
loginTest()
@@ -44,9 +48,8 @@ async function expectAccessibilityMenuToBeAvailableFromUserProfileMenu(
4448
const accessibilityMenuItem = page.getByRole('menuitem', {
4549
name: SETTING_CONFIGURATION_NAME,
4650
});
47-
const accessibilityModal = page
48-
.locator('.modal')
49-
.getByLabel(SETTING_CONFIGURATION_NAME);
51+
52+
await expect(userProfileTrigger).toBeVisible();
5053

5154
await userProfileTrigger.click();
5255

@@ -55,14 +58,22 @@ async function expectAccessibilityMenuToBeAvailableFromUserProfileMenu(
5558

5659
await accessibilityMenuItem.click();
5760

61+
const accessibilityModal = page
62+
.locator('.modal')
63+
.getByLabel(SETTING_CONFIGURATION_NAME);
64+
65+
await accessibilityModal.waitFor();
66+
5867
await expect(accessibilityModal).toBeVisible();
5968

6069
await accessibilityModal.getByLabel('Close').click();
70+
71+
await expect(accessibilityModal).toBeHidden();
6172
}
6273
else if (expectedStatus === 'hidden') {
6374
await expect(accessibilityMenuItem).toBeHidden();
6475

65-
await userProfileTrigger.click();
76+
await page.keyboard.press('Escape');
6677
}
6778
}
6879

@@ -117,49 +128,84 @@ test(
117128
}
118129
);
119130

120-
test(
121-
'Verifies that settings can be overridden',
122-
{tag: '@LPS-178192'},
123-
async ({
124-
accessibilityMenuPage,
125-
apiHelpers,
126-
browser,
127-
instanceSettingsPage,
128-
page,
129-
siteSettingsPage,
130-
systemSettingsPage,
131-
virtualInstancesPage,
132-
}) => {
133-
let virtualInstancePage: Page;
134-
let firstSite: Site;
135-
let secondSite: Site;
136-
137-
try {
138-
await test.step('Create new virtual instance, new first site and new second site', async () => {
139-
test.slow();
140-
141-
await virtualInstancesPage.addNewVirtualInstance(
142-
DEFAULT_VIRTUAL_INSTANCE_NAME
143-
);
131+
test.describe('Accessibility Menu Configuration Override and Inheritance', () => {
132+
test.slow();
144133

145-
virtualInstancePage = await browser.newPage({
146-
baseURL: `http://${DEFAULT_VIRTUAL_INSTANCE_NAME}:8080`,
147-
});
134+
let firstSite: Site;
135+
let secondSite: Site;
136+
let virtualInstancePage: Page;
148137

149-
await performLogin(
150-
virtualInstancePage,
151-
'test',
152-
'',
153-
`@${DEFAULT_VIRTUAL_INSTANCE_NAME}.com`
154-
);
138+
test.beforeEach(async ({apiHelpers, browser, virtualInstancesPage}) => {
139+
await test.step('Create new virtual instance, new first site and new second site', async () => {
140+
await virtualInstancesPage.addNewVirtualInstance(
141+
DEFAULT_VIRTUAL_INSTANCE_NAME
142+
);
155143

156-
[firstSite, secondSite] = await Promise.all(
157-
[FIRST_SITE_NAME, SECOND_SITE_NAME].map((name) =>
158-
apiHelpers.headlessSite.createSite({name})
159-
)
160-
);
144+
virtualInstancePage = await browser.newPage({
145+
baseURL: `http://${DEFAULT_VIRTUAL_INSTANCE_NAME}:8080`,
161146
});
162147

148+
await performLogin(
149+
virtualInstancePage,
150+
'test',
151+
'',
152+
`@${DEFAULT_VIRTUAL_INSTANCE_NAME}.com`
153+
);
154+
155+
[firstSite, secondSite] = await Promise.all(
156+
[FIRST_SITE_NAME, SECOND_SITE_NAME].map(
157+
async (name) =>
158+
await apiHelpers.headlessSite.createSite({name})
159+
)
160+
);
161+
});
162+
});
163+
164+
test.afterEach(
165+
async ({
166+
apiHelpers,
167+
instanceSettingsPage,
168+
systemSettingsPage,
169+
virtualInstancesPage,
170+
}) => {
171+
await systemSettingsPage.goToSystemSetting(
172+
SETTING_CATEGORY_KEY,
173+
SETTING_CONFIGURATION_NAME
174+
);
175+
await systemSettingsPage.resetToDefaultValues();
176+
177+
await instanceSettingsPage.goToInstanceSetting(
178+
SETTING_CATEGORY_KEY,
179+
SETTING_CONFIGURATION_NAME
180+
);
181+
await instanceSettingsPage.resetInstanceSetting();
182+
183+
await Promise.all(
184+
[firstSite, secondSite].map((site) =>
185+
apiHelpers.headlessSite.deleteSite(site.id)
186+
)
187+
);
188+
189+
if (virtualInstancePage) {
190+
await virtualInstancePage.close();
191+
}
192+
193+
await virtualInstancesPage.deleteVirtualInstance(
194+
DEFAULT_VIRTUAL_INSTANCE_NAME
195+
);
196+
}
197+
);
198+
199+
test(
200+
'Verifies that settings can be overridden',
201+
{tag: '@LPS-178192'},
202+
async ({
203+
accessibilityMenuPage,
204+
instanceSettingsPage,
205+
page,
206+
siteSettingsPage,
207+
systemSettingsPage,
208+
}) => {
163209
await test.step('When enable Accessibility Menu on first site settings', async () => {
164210
await siteSettingsPage.goToSiteSetting(
165211
SETTING_CATEGORY_KEY,
@@ -264,6 +310,9 @@ test(
264310
});
265311

266312
await test.step('And Accessibility Menu is available in the new virtual instance', async () => {
313+
await virtualInstancePage.reload();
314+
await virtualInstancePage.waitForLoadState('domcontentloaded');
315+
267316
await expectAccessibilityMenuToBeAvailableFromUserProfileMenu(
268317
virtualInstancePage
269318
);
@@ -287,27 +336,5 @@ test(
287336
);
288337
});
289338
}
290-
finally {
291-
await Promise.all(
292-
[firstSite, secondSite].map((site) => {
293-
apiHelpers.headlessSite.deleteSite(site.id);
294-
})
295-
);
296-
297-
if (virtualInstancePage) {
298-
await virtualInstancePage.close();
299-
}
300-
301-
await virtualInstancesPage.deleteVirtualInstance(
302-
DEFAULT_VIRTUAL_INSTANCE_NAME
303-
);
304-
305-
await instanceSettingsPage.goToInstanceSetting(
306-
'Accessibility',
307-
'Accessibility Menu'
308-
);
309-
310-
await instanceSettingsPage.resetInstanceSetting();
311-
}
312-
}
313-
);
339+
);
340+
});

0 commit comments

Comments
 (0)