@@ -27,6 +27,7 @@ import { ComposeLocalInstallPage } from '../model/pages/compose-onboarding/compo
27
27
import { ComposeOnboardingPage } from '../model/pages/compose-onboarding/compose-onboarding-page' ;
28
28
import { ComposeVersionPage } from '../model/pages/compose-onboarding/compose-version-page' ;
29
29
import { ComposeWideInstallPage } from '../model/pages/compose-onboarding/compose-wide-install-page' ;
30
+ import { ResourceCliCardPage } from '../model/pages/resource-cli-card-page' ;
30
31
import { ResourcesPage } from '../model/pages/resources-page' ;
31
32
import { SettingsBar } from '../model/pages/settings-bar' ;
32
33
import { WelcomePage } from '../model/pages/welcome-page' ;
@@ -35,6 +36,8 @@ import { PodmanDesktopRunner } from '../runner/podman-desktop-runner';
35
36
import type { RunnerTestContext } from '../testContext/runner-test-context' ;
36
37
import { isCI , isLinux } from '../utility/platform' ;
37
38
39
+ const RESOURCE_NAME : string = 'Compose' ;
40
+
38
41
let pdRunner : PodmanDesktopRunner ;
39
42
let page : Page ;
40
43
let navBar : NavigationBar ;
@@ -70,10 +73,10 @@ describe.skipIf(isCI && isLinux)('Compose onboarding workflow verification', asy
70
73
const settingsBar = new SettingsBar ( page ) ;
71
74
const resourcesPage = await settingsBar . openTabPage ( ResourcesPage ) ;
72
75
73
- await playExpect ( resourcesPage . composeResources ) . toBeVisible ( ) ;
74
- await resourcesPage . composeResources . scrollIntoViewIfNeeded ( ) ;
75
-
76
- const setupButton = resourcesPage . composeResources . getByRole ( 'button' , { name : 'Setup Compose' } ) ;
76
+ await playExpect . poll ( async ( ) => resourcesPage . resourceCardIsVisible ( RESOURCE_NAME ) ) . toBeTruthy ( ) ;
77
+ const composeResourceCard = new ResourceCliCardPage ( page , RESOURCE_NAME ) ;
78
+ await composeResourceCard . card . scrollIntoViewIfNeeded ( ) ;
79
+ const setupButton = composeResourceCard . setupButton ;
77
80
await playExpect (
78
81
setupButton ,
79
82
'Compose Setup button is not present, perhaps compose is already installed' ,
@@ -139,14 +142,15 @@ describe.skipIf(isCI && isLinux)('Compose onboarding workflow verification', asy
139
142
140
143
test . skipIf ( composePartialInstallation ) ( 'Verify Compose was installed' , async ( ) => {
141
144
await navBar . openSettings ( ) ;
142
- const resourcesPage = new ResourcesPage ( page ) ;
143
- const composeBox = resourcesPage . featuredProviderResources . getByRole ( 'region' , { name : 'Compose' } ) ;
144
- const setupButton = composeBox . getByRole ( 'button' , { name : 'Setup Compose' } ) ;
145
+ const settingsBar = new SettingsBar ( page ) ;
146
+ const resourcesPage = await settingsBar . openTabPage ( ResourcesPage ) ;
147
+ await playExpect . poll ( async ( ) => await resourcesPage . resourceCardIsVisible ( RESOURCE_NAME ) ) . toBeTruthy ( ) ;
148
+ const composeBox = new ResourceCliCardPage ( page , RESOURCE_NAME ) ;
149
+ const setupButton = composeBox . setupButton ;
145
150
await playExpect ( setupButton ) . toBeHidden ( ) ;
146
151
147
- const settingsBar = new SettingsBar ( page ) ;
148
152
const cliToolsPage = await settingsBar . openTabPage ( CLIToolsPage ) ;
149
- const composeRow = cliToolsPage . toolsTable . getByLabel ( 'Compose' ) ;
153
+ const composeRow = cliToolsPage . toolsTable . getByLabel ( RESOURCE_NAME ) ;
150
154
const composeVersionInfo = composeRow . getByLabel ( 'cli-version' ) ;
151
155
await playExpect ( composeVersionInfo ) . toHaveText ( 'docker-compose ' + composeVersion ) ;
152
156
} ) ;
@@ -157,9 +161,10 @@ async function openComposeOnboarding(page: Page): Promise<ComposeOnboardingPage>
157
161
const settingsBar = new SettingsBar ( page ) ;
158
162
const resourcesPage = await settingsBar . openTabPage ( ResourcesPage ) ;
159
163
await playExpect ( resourcesPage . heading ) . toBeVisible ( ) ;
160
- await playExpect ( resourcesPage . composeResources ) . toBeVisible ( ) ;
161
- await resourcesPage . composeResources . scrollIntoViewIfNeeded ( ) ;
162
- const setupButton = resourcesPage . composeResources . getByRole ( 'button' , { name : 'Setup Compose' } ) ;
164
+ await playExpect . poll ( async ( ) => await resourcesPage . resourceCardIsVisible ( RESOURCE_NAME ) ) . toBeTruthy ( ) ;
165
+ const composeResourceCard = new ResourceCliCardPage ( page , RESOURCE_NAME ) ;
166
+ await composeResourceCard . card . scrollIntoViewIfNeeded ( ) ;
167
+ const setupButton = composeResourceCard . setupButton ;
163
168
await playExpect (
164
169
setupButton ,
165
170
'Compose Setup button is not present, perhaps compose is already installed' ,
0 commit comments