Skip to content

Commit e31b1ed

Browse files
committed
chore(tests): added linux check
Signed-off-by: Tamara Babalova <[email protected]>
1 parent 1f1d89e commit e31b1ed

File tree

3 files changed

+42
-34
lines changed

3 files changed

+42
-34
lines changed

tests/playwright/src/specs/model/pages/compose-onboarding-page.ts tests/playwright/src/model/pages/cli-tools-page.ts

+12-9
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,22 @@
1717
***********************************************************************/
1818

1919
import type { Locator, Page } from 'playwright';
20+
2021
import { SettingsPage } from './settings-page';
2122

22-
export class ComposeOnboardingPage extends SettingsPage {
23+
export class CLIToolsPage extends SettingsPage {
24+
readonly main: Locator;
25+
readonly header: Locator;
26+
readonly content: Locator;
2327
readonly heading: Locator;
24-
readonly statusMessage: Locator;
25-
readonly cancelButton: Locator;
26-
readonly nextButton: Locator;
28+
readonly toolsTable: Locator;
2729

2830
constructor(page: Page) {
29-
super(page, 'Compose Setup');
30-
this.heading = page.getByRole('heading', { name: 'Compose Setup Header' });
31-
this.statusMessage = page.getByLabel('Onboarding Status Message');
32-
this.cancelButton = page.getByRole('button', { name: 'Cancel Setup' });
33-
this.nextButton = page.getByRole('button', { name: 'Next Step' });
31+
super(page, 'CLI Tools');
32+
this.main = page.getByRole('region', { name: 'CLI Tools' }); //check name
33+
this.header = this.main.getByRole('region', { name: 'Header' });
34+
this.heading = this.header.getByRole('heading', { name: 'CLI Tools', exact: true });
35+
this.content = this.main.getByRole('region', { name: 'Content' });
36+
this.toolsTable = this.content.getByRole('table', { name: 'cli-tools' });
3437
}
3538
}

tests/playwright/src/specs/model/pages/cli-tools-page.ts tests/playwright/src/model/pages/compose-onboarding-page.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@
1717
***********************************************************************/
1818

1919
import type { Locator, Page } from 'playwright';
20-
import { SettingsPage } from './settings-page';
2120

22-
export class CLIToolsPage extends SettingsPage {
21+
import { OnboardingPage } from './onboarding-page';
22+
23+
export class ComposeOnboardingPage extends OnboardingPage {
2324
readonly heading: Locator;
24-
readonly toolsTable: Locator;
2525

2626
constructor(page: Page) {
27-
super(page, 'CLI Tools');
28-
this.heading = page.getByRole('heading', { name: 'CLI Tools' });
29-
this.toolsTable = page.getByRole('table', { name: 'cli-tools' });
27+
super(page);
28+
this.heading = this.header.getByRole('heading', { name: 'Compose Setup Header' });
3029
}
3130
}

tests/playwright/src/specs/compose-onboarding-smoke.spec.ts

+25-19
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,26 @@
1616
* SPDX-License-Identifier: Apache-2.0
1717
***********************************************************************/
1818

19-
import { expect as playExpect } from '@playwright/test';
19+
import * as os from 'node:os';
20+
2021
import type { Page } from '@playwright/test';
21-
import { PodmanDesktopRunner } from './runner/podman-desktop-runner';
22-
import { afterAll, beforeAll, beforeEach, test, describe } from 'vitest';
23-
import { WelcomePage } from './model/pages/welcome-page';
24-
import { NavigationBar } from './model/workbench/navigation';
25-
import type { RunnerTestContext } from './testContext/runner-test-context';
26-
import { SettingsBar } from './model/pages/settings-bar';
27-
import { ResourcesPage } from './model/pages/resources-page';
28-
import { ComposeOnboardingPage } from './model/pages/compose-onboarding-page';
29-
import { CLIToolsPage } from './model/pages/cli-tools-page';
22+
import { expect as playExpect } from '@playwright/test';
23+
import { afterAll, beforeAll, beforeEach, describe, test } from 'vitest';
24+
25+
import { CLIToolsPage } from '../model/pages/cli-tools-page';
26+
import { ComposeOnboardingPage } from '../model/pages/compose-onboarding-page';
27+
import { ResourcesPage } from '../model/pages/resources-page';
28+
import { SettingsBar } from '../model/pages/settings-bar';
29+
import { WelcomePage } from '../model/pages/welcome-page';
30+
import { NavigationBar } from '../model/workbench/navigation';
31+
import { PodmanDesktopRunner } from '../runner/podman-desktop-runner';
32+
import type { RunnerTestContext } from '../testContext/runner-test-context';
3033

3134
let pdRunner: PodmanDesktopRunner;
3235
let page: Page;
3336
let navBar: NavigationBar;
3437
let composeVersion: string;
38+
const isLinux = os.platform() === 'linux';
3539

3640
beforeAll(async () => {
3741
pdRunner = new PodmanDesktopRunner();
@@ -51,7 +55,7 @@ beforeEach<RunnerTestContext>(async ctx => {
5155
ctx.pdRunner = pdRunner;
5256
});
5357

54-
describe('Compose onboarding workflow verification', async () => {
58+
describe.skipIf(isLinux)('Compose onboarding workflow verification', async () => {
5559
test('Can enter Compose onboarding', async () => {
5660
await navBar.openSettings();
5761
const settingsBar = new SettingsBar(page);
@@ -69,7 +73,7 @@ describe('Compose onboarding workflow verification', async () => {
6973
const onboardingPage = new ComposeOnboardingPage(page);
7074

7175
await playExpect(onboardingPage.heading).toBeVisible();
72-
await playExpect(onboardingPage.statusMessage).toHaveText('Compose Download');
76+
await playExpect(onboardingPage.onboardingStatusMessage).toHaveText('Compose Download');
7377

7478
const downloadAvailableText = page.getByText(
7579
/Compose will be downloaded in the next step \(Version v[0-9.]+\). Want to download/,
@@ -86,11 +90,13 @@ describe('Compose onboarding workflow verification', async () => {
8690

8791
test('Can install Compose locally', async () => {
8892
const onboardingPage = new ComposeOnboardingPage(page);
89-
await onboardingPage.nextButton.click();
93+
await onboardingPage.nextStepButton.click();
9094

91-
await playExpect(onboardingPage.statusMessage).toHaveText('Compose Successfully Downloaded', { timeout: 50000 });
95+
await playExpect(onboardingPage.onboardingStatusMessage).toHaveText('Compose Successfully Downloaded', {
96+
timeout: 50000,
97+
});
9298

93-
await onboardingPage.cancelButton.click();
99+
await onboardingPage.cancelSetupButtion.click();
94100

95101
const skipDialog = page.getByRole('dialog', { name: 'Skip Setup Popup', exact: true });
96102
const skipOkButton = skipDialog.getByRole('button', { name: 'Ok' });
@@ -104,20 +110,20 @@ describe('Compose onboarding workflow verification', async () => {
104110
await setupButton.click();
105111

106112
const onboardingPage = new ComposeOnboardingPage(page);
107-
await playExpect(onboardingPage.statusMessage).toHaveText('Compose Successfully Downloaded');
113+
await playExpect(onboardingPage.onboardingStatusMessage).toHaveText('Compose Successfully Downloaded');
108114
const downloadAvailableText = page.getByText(
109115
'The next step will install Compose system-wide. You will be prompted for system',
110116
);
111117
await playExpect(downloadAvailableText).toBeVisible();
112118

113-
await onboardingPage.nextButton.click();
119+
await onboardingPage.nextStepButton.click();
114120

115-
await playExpect(onboardingPage.statusMessage).toHaveText('Compose Installed', { timeout: 50000 });
121+
await playExpect(onboardingPage.onboardingStatusMessage).toHaveText('Compose Installed', { timeout: 50000 });
116122
let downloadFinishedText = page.locator('p');
117123
downloadFinishedText = downloadFinishedText.filter({ hasText: 'Compose is installed system-wide!' });
118124
await playExpect(downloadFinishedText).toBeVisible();
119125

120-
await onboardingPage.nextButton.click();
126+
await onboardingPage.nextStepButton.click();
121127
});
122128

123129
test('Verify Compose was installed', async () => {

0 commit comments

Comments
 (0)