1
- import { Page , test } from "@playwright/test" ;
1
+ import { expect , Page , test } from "@playwright/test" ;
2
2
import { UIhelper } from "../utils/ui-helper" ;
3
3
import { Common , setupBrowser } from "../utils/common" ;
4
4
import { CatalogImport } from "../support/pages/catalog-import" ;
@@ -7,7 +7,6 @@ import { GITHUB_API_ENDPOINTS } from "../utils/api-endpoints";
7
7
8
8
let page : Page ;
9
9
10
- // TODO: replace skip with serial
11
10
test . describe . serial ( "Link Scaffolded Templates to Catalog Items" , ( ) => {
12
11
let uiHelper : UIhelper ;
13
12
let common : Common ;
@@ -19,6 +18,7 @@ test.describe.serial("Link Scaffolded Templates to Catalog Items", () => {
19
18
const reactAppDetails = {
20
19
owner : "janus-qe/maintainers" ,
21
20
componentName : `test-scaffoldedfromlink-${ Date . now ( ) } ` ,
21
+ componentPartialName : `test-scaffoldedfromlink-` ,
22
22
description : "react app using template" ,
23
23
repo : `test-scaffolded-${ Date . now ( ) } ` ,
24
24
repoOwner : Buffer . from (
@@ -34,7 +34,7 @@ test.describe.serial("Link Scaffolded Templates to Catalog Items", () => {
34
34
uiHelper = new UIhelper ( page ) ;
35
35
catalogImport = new CatalogImport ( page ) ;
36
36
37
- await common . loginAsKeycloakUser ( ) ;
37
+ await common . loginAsGuest ( ) ;
38
38
} ) ;
39
39
40
40
test ( "Register an Template" , async ( ) => {
@@ -82,13 +82,35 @@ test.describe.serial("Link Scaffolded Templates to Catalog Items", () => {
82
82
await uiHelper . clickLink ( "Open in catalog" ) ;
83
83
} ) ;
84
84
85
- //FIXME
86
- test . skip ( "Verify Scaffolded link in components Dependencies and scaffoldedFrom relation in entity Raw Yaml " , async ( ) => {
87
- await common . clickOnGHloginPopup ( ) ;
85
+ test ( "Verify Scaffolded link in components Dependencies and scaffoldedFrom relation in entity Raw Yaml " , async ( ) => {
86
+ await uiHelper . openSidebar ( "Catalog" ) ;
87
+ await uiHelper . clickByDataTestId ( "user-picker-all" ) ;
88
+ await uiHelper . searchInputPlaceholder ( "scaffoldedfromlink-\n" ) ;
89
+ await clickOnScaffoldedFromLink ( ) ;
90
+
88
91
await uiHelper . clickTab ( "Dependencies" ) ;
89
- await uiHelper . verifyText (
90
- `ownerOf / ownedByscaffoldedFromcomponent:${ reactAppDetails . componentName } group:${ reactAppDetails . owner } Create React App Template` ,
92
+
93
+ // Define selectors for labels and nodes
94
+ const labelSelector = 'g[data-testid="label"]' ; // Selector for labels
95
+ const nodeSelector = 'g[data-testid="node"]' ; // Selector for nodes
96
+
97
+ // Verify text inside the 'label' selector
98
+ await uiHelper . verifyTextInSelector ( labelSelector , "ownerOf" ) ;
99
+ await uiHelper . verifyTextInSelector ( labelSelector , "/ ownedBy" ) ;
100
+ await uiHelper . verifyTextInSelector ( labelSelector , "scaffoldedFrom" ) ;
101
+
102
+ // Verify text inside the 'node' selector
103
+ await uiHelper . verifyPartialTextInSelector (
104
+ nodeSelector ,
105
+ reactAppDetails . componentPartialName ,
91
106
) ;
107
+
108
+ await uiHelper . verifyTextInSelector (
109
+ nodeSelector ,
110
+ "Create React App Template" ,
111
+ ) ;
112
+
113
+ // Verify the scaffoldedFrom relation in the YAML view of the entity
92
114
await catalogImport . inspectEntityAndVerifyYaml (
93
115
`- type: scaffoldedFrom\n targetRef: template:default/create-react-app-template-with-timestamp-entityref\n target:\n kind: template\n namespace: default\n name: create-react-app-template-with-timestamp-entityref` ,
94
116
) ;
@@ -122,4 +144,13 @@ test.describe.serial("Link Scaffolded Templates to Catalog Items", () => {
122
144
) ;
123
145
await page . close ( ) ;
124
146
} ) ;
147
+
148
+ async function clickOnScaffoldedFromLink ( ) {
149
+ const selector =
150
+ 'a[href*="/catalog/default/component/test-scaffoldedfromlink-"]' ;
151
+ await page . locator ( selector ) . first ( ) . waitFor ( { state : "visible" } ) ;
152
+ const link = await page . locator ( selector ) . first ( ) ;
153
+ await expect ( link ) . toBeVisible ( ) ;
154
+ await link . click ( ) ;
155
+ }
125
156
} ) ;
0 commit comments