16
16
* SPDX-License-Identifier: Apache-2.0
17
17
***********************************************************************/
18
18
import type { Page } from '@playwright/test' ;
19
- import { expect as playExpect } from '@playwright/test' ;
20
- import type { RunnerTestContext } from '@podman-desktop/tests-playwright' ;
19
+ import { expect as playExpect , test } from '@playwright/test' ;
21
20
import { AuthenticationPage , ExtensionCardPage , NavigationBar , PodmanDesktopRunner , WelcomePage } from '@podman-desktop/tests-playwright' ;
22
- import { afterAll , beforeAll , beforeEach , describe , test } from 'vitest' ;
23
21
24
22
import { SSOExtensionPage } from './model/pages/sso-extension-page' ;
25
23
@@ -36,11 +34,7 @@ const activeExtensionStatus = 'ACTIVE';
36
34
const disabledExtensionStatus = 'DISABLED' ;
37
35
const skipInstallation = process . env . SKIP_INSTALLATION ? process . env . SKIP_INSTALLATION : false ;
38
36
39
- beforeEach < RunnerTestContext > ( async ctx => {
40
- ctx . pdRunner = pdRunner ;
41
- } ) ;
42
-
43
- beforeAll ( async ( ) => {
37
+ test . beforeAll ( async ( ) => {
44
38
pdRunner = new PodmanDesktopRunner ( { customFolder : 'sso-tests-pd' , autoUpdate : false , autoCheckUpdate : false } ) ;
45
39
page = await pdRunner . start ( ) ;
46
40
pdRunner . setVideoAndTraceName ( 'sso-e2e' ) ;
@@ -51,63 +45,64 @@ beforeAll(async () => {
51
45
extensionCard = new ExtensionCardPage ( page , extensionLabelName , extensionLabel ) ;
52
46
} ) ;
53
47
54
- afterAll ( async ( ) => {
48
+ test . afterAll ( async ( ) => {
55
49
await pdRunner . close ( ) ;
56
50
} ) ;
57
51
58
- describe ( 'Red Hat Authentication extension verification' , async ( ) => {
59
-
60
- test ( 'Go to extensions and check if extension is already installed' , async ( ) => {
61
- const extensions = await navBar . openExtensions ( ) ;
62
- if ( await extensions . extensionIsInstalled ( extensionLabel ) ) {
63
- extensionInstalled = true ;
64
- }
65
- } ) ;
52
+ test . describe ( 'Red Hat Authentication extension verification' , ( ) => {
53
+ test . describe ( 'Red Hat Authentication extension installation' , ( ) => {
54
+ test ( 'Go to extensions and check if extension is already installed' , async ( ) => {
55
+ const extensions = await navBar . openExtensions ( ) ;
56
+ if ( await extensions . extensionIsInstalled ( extensionLabel ) ) {
57
+ extensionInstalled = true ;
58
+ }
59
+ } ) ;
66
60
67
- // we want to skip removing of the extension when we are running tests from PR check
68
- test . runIf ( extensionInstalled && ! skipInstallation ) (
69
- 'Uninstalled previous version of sso extension' ,
70
- async ( ) => {
61
+ // we want to skip removing of the extension when we are running tests from PR check
62
+ test ( 'Uninstalle previous version of sso extension' , async ( ) => {
63
+ test . skip ( ! extensionInstalled || ! ! skipInstallation ) ;
64
+ test . setTimeout ( 60000 ) ;
71
65
await removeExtension ( ) ;
72
- } ,
73
- 60000 ,
74
- ) ;
75
-
76
- test . runIf ( ! skipInstallation ) ( 'Extension can be installed using OCI image' , async ( ) => {
77
- const extensions = await navBar . openExtensions ( ) ;
78
- await extensions . installExtensionFromOCIImage ( imageName ) ;
79
- await playExpect ( extensionCard . card ) . toBeVisible ( ) ;
80
- } , 200000 ) ;
81
-
82
- test ( 'Extension card is present and active' , async ( ) => {
83
- const extensions = await navBar . openExtensions ( ) ;
84
- await playExpect . poll ( async ( ) =>
85
- await extensions . extensionIsInstalled ( extensionLabel ) , { timeout : 30000 } ,
86
- ) . toBeTruthy ( ) ;
87
- const extensionCard = await extensions . getInstalledExtension ( extensionLabelName , extensionLabel ) ;
88
- await playExpect ( extensionCard . status ) . toHaveText ( activeExtensionStatus ) ;
89
- } ) ;
66
+ } ) ;
90
67
91
- test ( 'Extension Details show correct status' , async ( ) => {
92
- const extensions = await navBar . openExtensions ( ) ;
93
- const extensionCard = await extensions . getInstalledExtension ( extensionLabelName , extensionLabel ) ;
94
- await extensionCard . openExtensionDetails ( ) ;
95
- const details = new SSOExtensionPage ( page ) ;
96
- await playExpect ( details . heading ) . toBeVisible ( ) ;
97
- await playExpect ( details . status ) . toHaveText ( activeExtensionStatus ) ;
98
- } ) ;
68
+ test ( 'Extension can be installed using OCI image' , async ( ) => {
69
+ test . skip ( extensionInstalled && ! skipInstallation ) ;
70
+ test . setTimeout ( 200000 ) ;
71
+ const extensions = await navBar . openExtensions ( ) ;
72
+ await extensions . installExtensionFromOCIImage ( imageName ) ;
73
+ await playExpect ( extensionCard . card ) . toBeVisible ( ) ;
74
+ } ) ;
99
75
100
- test ( 'SSO provider is available in Authentication Page' , async ( ) => {
101
- const settingsBar = await navBar . openSettings ( ) ;
102
- const authPage = await settingsBar . openTabPage ( AuthenticationPage ) ;
103
- await playExpect ( authPage . heading ) . toHaveText ( 'Authentication' ) ;
104
- const provider = authPage . getProvider ( authProviderName ) ;
105
- await playExpect ( provider . getByLabel ( 'Provider Information' ) . getByLabel ( 'Provider Name' ) ) . toHaveText ( authProviderName ) ;
106
- await playExpect ( provider . getByLabel ( 'Provider Information' ) . getByLabel ( 'Provider Status' ) ) . toHaveText ( 'Logged out' ) ;
107
- await playExpect ( provider . getByLabel ( 'Provider Actions' ) . getByRole ( 'button' ) ) . toContainText ( 'Sign in' ) ;
76
+ test ( 'Extension card is present and active' , async ( ) => {
77
+ const extensions = await navBar . openExtensions ( ) ;
78
+ await playExpect . poll ( async ( ) =>
79
+ await extensions . extensionIsInstalled ( extensionLabel ) , { timeout : 30000 } ,
80
+ ) . toBeTruthy ( ) ;
81
+ const extensionCard = await extensions . getInstalledExtension ( extensionLabelName , extensionLabel ) ;
82
+ await playExpect ( extensionCard . status ) . toHaveText ( activeExtensionStatus ) ;
83
+ } ) ;
84
+
85
+ test ( 'Extension Details show correct status' , async ( ) => {
86
+ const extensions = await navBar . openExtensions ( ) ;
87
+ const extensionCard = await extensions . getInstalledExtension ( extensionLabelName , extensionLabel ) ;
88
+ await extensionCard . openExtensionDetails ( 'Red Hat Authentication' ) ;
89
+ const details = new SSOExtensionPage ( page ) ;
90
+ await playExpect ( details . heading ) . toBeVisible ( ) ;
91
+ await playExpect ( details . status ) . toHaveText ( activeExtensionStatus ) ;
92
+ } ) ;
93
+
94
+ test ( 'SSO provider is available in Authentication Page' , async ( ) => {
95
+ const settingsBar = await navBar . openSettings ( ) ;
96
+ const authPage = await settingsBar . openTabPage ( AuthenticationPage ) ;
97
+ await playExpect ( authPage . heading ) . toHaveText ( 'Authentication' ) ;
98
+ const provider = authPage . getProvider ( authProviderName ) ;
99
+ await playExpect ( provider . getByLabel ( 'Provider Information' ) . getByLabel ( 'Provider Name' ) ) . toHaveText ( authProviderName ) ;
100
+ await playExpect ( provider . getByLabel ( 'Provider Information' ) . getByLabel ( 'Provider Status' ) ) . toHaveText ( 'Logged out' ) ;
101
+ await playExpect ( provider . getByLabel ( 'Provider Actions' ) . getByRole ( 'button' ) ) . toContainText ( 'Sign in' ) ;
102
+ } ) ;
108
103
} ) ;
109
104
110
- describe ( 'Red Hat Authentication extension handling' , async ( ) => {
105
+ test . describe ( 'Red Hat Authentication extension handling' , ( ) => {
111
106
test ( 'Extension can be disabled' , async ( ) => {
112
107
const extensions = await navBar . openExtensions ( ) ;
113
108
playExpect ( await extensions . extensionIsInstalled ( extensionLabel ) ) . toBeTruthy ( ) ;
0 commit comments