On-prem the distro and architecture are set after the wizard has been opened. This triggers a reload of the image types and makes the tests very flaky.
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { expect, FrameLocator, Page } from '@playwright/test';
|
|
|
|
import { getHostArch, getHostDistroName, isHosted } from './helpers';
|
|
|
|
/**
|
|
* Opens the wizard, fills out the "Image Output" step, and navigates to the optional steps
|
|
* @param page - the page object
|
|
*/
|
|
export const navigateToOptionalSteps = async (page: Page | FrameLocator) => {
|
|
await page.getByRole('button', { name: 'Create image blueprint' }).click();
|
|
if (!isHosted()) {
|
|
// wait until the distro and architecture aligns with the host
|
|
await expect(page.getByTestId('release_select')).toHaveText(
|
|
getHostDistroName(),
|
|
);
|
|
await expect(page.getByTestId('arch_select')).toHaveText(getHostArch());
|
|
}
|
|
await page.getByRole('checkbox', { name: 'Virtualization' }).click();
|
|
await page.getByRole('button', { name: 'Next' }).click();
|
|
};
|
|
|
|
/**
|
|
* Returns the FrameLocator object in case we are using cockpit plugin, else it returns the page object
|
|
* @param page - the page object
|
|
*/
|
|
export const ibFrame = (page: Page): FrameLocator | Page => {
|
|
if (isHosted()) {
|
|
return page;
|
|
}
|
|
return page
|
|
.locator('iframe[name="cockpit1\\:localhost\\/cockpit-image-builder"]')
|
|
.contentFrame();
|
|
};
|
|
|
|
/**
|
|
* Navigates to the landing page of the Image Builder
|
|
* @param page - the page object
|
|
*/
|
|
export const navigateToLandingPage = async (page: Page) => {
|
|
if (isHosted()) {
|
|
await page.goto('/insights/image-builder/landing');
|
|
} else {
|
|
await page.goto('/cockpit-image-builder');
|
|
}
|
|
};
|