fix(tests): enhance onboarding modal dismissal logic in helpers
This commit is contained in:
parent
1f548f71ea
commit
205d8f37e4
1 changed files with 23 additions and 10 deletions
|
|
@ -98,6 +98,29 @@ async function dismissOnboardingModals(page: Page): Promise<void> {
|
|||
let settledWithoutDialog = 0;
|
||||
|
||||
for (let step = 0; step < maxSteps; step += 1) {
|
||||
if (await settingsDialog.isVisible().catch(() => false)) {
|
||||
const backToSettingsBtn = settingsDialog.getByRole('button', { name: /back to settings/i });
|
||||
if (await backToSettingsBtn.isVisible().catch(() => false)) {
|
||||
await expect(backToSettingsBtn).toBeEnabled({ timeout: 10000 });
|
||||
await backToSettingsBtn.click();
|
||||
await page.waitForTimeout(100);
|
||||
settledWithoutDialog = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
const saveBtn = page.getByTestId('settings-save-button');
|
||||
if (await saveBtn.isVisible().catch(() => false)) {
|
||||
await expect(saveBtn).toBeEnabled({ timeout: 15000 });
|
||||
await saveBtn.click();
|
||||
} else {
|
||||
await page.keyboard.press('Escape');
|
||||
}
|
||||
await settingsDialog.waitFor({ state: 'hidden', timeout: 15000 });
|
||||
await page.waitForTimeout(100);
|
||||
settledWithoutDialog = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (await privacyDialog.isVisible().catch(() => false)) {
|
||||
const privacyAgree = page.getByTestId('privacy-agree-checkbox');
|
||||
if (await privacyAgree.isVisible().catch(() => false)) {
|
||||
|
|
@ -124,16 +147,6 @@ async function dismissOnboardingModals(page: Page): Promise<void> {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (await settingsDialog.isVisible().catch(() => false)) {
|
||||
const saveBtn = page.getByTestId('settings-save-button');
|
||||
await expect(saveBtn).toBeEnabled({ timeout: 15000 });
|
||||
await saveBtn.click();
|
||||
await settingsDialog.waitFor({ state: 'hidden', timeout: 15000 });
|
||||
await page.waitForTimeout(100);
|
||||
settledWithoutDialog = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
settledWithoutDialog += 1;
|
||||
if (settledWithoutDialog >= settleChecks) {
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in a new issue