Adds handler for the new intercom popup notifications that trigger OpenScap window. Also adds noWaitAfter for the click action to fix flakiness.
44 lines
1.8 KiB
TypeScript
44 lines
1.8 KiB
TypeScript
import { type Page, expect } from '@playwright/test';
|
|
|
|
export const togglePreview = async (page: Page) => {
|
|
const toggleSwitch = page.locator('#preview-toggle');
|
|
|
|
if (!(await toggleSwitch.isChecked())) {
|
|
await toggleSwitch.click();
|
|
}
|
|
|
|
const turnOnButton = page.getByRole('button', { name: 'Turn on' });
|
|
if (await turnOnButton.isVisible()) {
|
|
await turnOnButton.click();
|
|
}
|
|
|
|
await expect(toggleSwitch).toBeChecked();
|
|
};
|
|
|
|
export const isHosted = (): boolean => {
|
|
return process.env.BASE_URL?.includes('redhat.com') || false;
|
|
};
|
|
|
|
export const closePopupsIfExist = async (page: Page) => {
|
|
const locatorsToCheck = [
|
|
page.locator('.pf-v6-c-alert.notification-item button'), // This closes all toast pop-ups
|
|
page.locator(`button[id^="pendo-close-guide-"]`), // This closes the pendo guide pop-up
|
|
page.locator(`button[id="truste-consent-button"]`), // This closes the trusted consent pop-up
|
|
page.getByLabel('close-notification'), // This closes a one off info notification (May be covered by the toast above, needs recheck.)
|
|
page
|
|
.locator('iframe[name="intercom-modal-frame"]')
|
|
.contentFrame()
|
|
.getByRole('button', { name: 'Close' }), // This closes the intercom pop-up
|
|
page
|
|
.locator('iframe[name="intercom-notifications-frame"]')
|
|
.contentFrame()
|
|
.getByRole('button', { name: 'Profile image for Rob Rob' })
|
|
.last(), // This closes the intercom pop-up notification at the bottom of the screen, the last notification is displayed first if stacked (different from the modal popup handled above)
|
|
];
|
|
|
|
for (const locator of locatorsToCheck) {
|
|
await page.addLocatorHandler(locator, async () => {
|
|
await locator.first().click({ timeout: 10_000, noWaitAfter: true }); // There can be multiple toast pop-ups
|
|
});
|
|
}
|
|
};
|