11import { loginAsAdmin , navigateTo } from './utils/test-util' ;
2- import { findColumnIndex , getMenuItem } from './utils/test-util-antd' ;
2+ import { findColumnIndex } from './utils/test-util-antd' ;
33import { expect , test } from '@playwright/test' ;
44
55test . describe ( 'environment ' , ( ) => {
66 test . beforeEach ( async ( { page } ) => {
77 await loginAsAdmin ( page ) ;
8- await getMenuItem ( page , 'Environments' ) . click ( ) ;
8+ await page . getByRole ( 'menuitem' , { name : 'Admin Settings' } ) . click ( ) ;
9+ await page
10+ . getByRole ( 'menuitem' , { name : 'file-done Environments' } )
11+ . click ( ) ;
912 await expect ( page ) . toHaveURL ( / \/ e n v i r o n m e n t / ) ;
1013 await page . waitForLoadState ( 'networkidle' ) ;
14+ // Wait for the table to be visible
15+ await page
16+ . locator ( '.ant-table-content' )
17+ . waitFor ( { state : 'visible' , timeout : 10000 } ) ;
1118 } ) ;
1219 test ( 'Rendering Image List' , async ( { page } ) => {
1320 const table = page . locator ( '.ant-table-content' ) ;
@@ -74,9 +81,10 @@ test.describe('environment ', () => {
7481 . click ( ) ;
7582 await page . waitForLoadState ( 'networkidle' ) ;
7683 // get resource limit from control modal
77- const resourceLimitControlModal = page . locator (
78- '.ant-modal-content:has-text("Modify Minimum Image Resource Limit")' ,
79- ) ;
84+ const resourceLimitControlModal = page . getByRole ( 'dialog' , {
85+ name : / M o d i f y M i n i m u m I m a g e R e s o u r c e L i m i t / i,
86+ } ) ;
87+
8088 await expect ( resourceLimitControlModal ) . toBeVisible ( ) ;
8189
8290 const cpuFormItem = resourceLimitControlModal . locator (
@@ -92,8 +100,9 @@ test.describe('environment ', () => {
92100 '.ant-input-number input' ,
93101 ) ;
94102 const memoryValue = await memoryFormItemInput . getAttribute ( 'value' ) ;
103+ // In Ant Design 6, the unit selector structure changed - use .ant-select .ant-typography
95104 const memorySize = await memoryFormItem
96- . locator ( '.ant-input-number-group-addon .ant-select-selection-item ' )
105+ . locator ( '.ant-select .ant-typography ' )
97106 . textContent ( ) ;
98107 // modify resource limit
99108 await cpuFormItemInput . fill ( CPU_CORE ) ;
@@ -115,9 +124,10 @@ test.describe('environment ', () => {
115124 . getByRole ( 'button' , { name : 'setting' } )
116125 . click ( ) ;
117126 await page . waitForLoadState ( 'networkidle' ) ;
118- const modifiedResourceLimitControlModal = page . locator (
119- '.ant-modal-content:has-text("Modify Minimum Image Resource Limit")' ,
120- ) ;
127+ // In Ant Design 6, use role-based selector for dialog
128+ const modifiedResourceLimitControlModal = page . getByRole ( 'dialog' , {
129+ name : / M o d i f y M i n i m u m I m a g e R e s o u r c e L i m i t / i,
130+ } ) ;
121131 await expect ( modifiedResourceLimitControlModal ) . toBeVisible ( ) ;
122132 const modifiedCpuFormItemInput = modifiedResourceLimitControlModal . locator (
123133 '.ant-form-item-row:has-text("CPU") input' ,
@@ -128,10 +138,11 @@ test.describe('environment ', () => {
128138 ) ;
129139 await expect ( modifiedCpuFormItemInput ) . toHaveValue ( CPU_CORE ) ;
130140 await expect ( modifiedMemoryFormItemInput ) . toHaveValue ( MEMORY_SIZE ) ;
141+ // In Ant Design 6, the unit selector structure changed - use .ant-select .ant-typography
131142 await expect (
132- memoryFormItem . locator (
133- '.ant-input-number-group-addon .ant-select-selection-item' ,
134- ) ,
143+ modifiedResourceLimitControlModal
144+ . locator ( '.ant-form-item-row:has-text("Memory")' )
145+ . locator ( '.ant-select .ant-typography' ) ,
135146 ) . toHaveText ( 'GiB' ) ;
136147
137148 // reset resource limit
@@ -141,8 +152,9 @@ test.describe('environment ', () => {
141152 await expect ( modifiedMemoryFormItemInput ) . toHaveValue (
142153 memoryValue as string ,
143154 ) ;
155+ // In Ant Design 6, click on the select component wrapper
144156 const memorySizeAddon = modifiedResourceLimitControlModal . locator (
145- '.ant-form-item-row:has-text("Memory") .ant-select-selector ' ,
157+ '.ant-form-item-row:has-text("Memory") .ant-select' ,
146158 ) ;
147159 await memorySizeAddon . click ( ) ;
148160 await page
@@ -175,7 +187,8 @@ test.describe('environment ', () => {
175187 . click ( ) ;
176188
177189 // Add app
178- const modal = page . locator ( '.ant-modal-content:has-text("Manage Apps")' ) ;
190+ // In Ant Design 6, use role-based selector for dialog
191+ const modal = page . getByRole ( 'dialog' , { name : / M a n a g e A p p s / i } ) ;
179192 await expect ( modal ) . toBeVisible ( ) ;
180193 const numberOfAppsBeforeAdd = await modal . locator ( '.ant-form-item' ) . count ( ) ;
181194 await modal . getByRole ( 'button' , { name : 'plus Add' } ) . click ( ) ;
@@ -207,9 +220,8 @@ test.describe('environment ', () => {
207220 . nth ( controlColumnIndex )
208221 . getByRole ( 'button' , { name : 'appstore' } )
209222 . click ( ) ;
210- const modalAfterAdd = page . locator (
211- '.ant-modal-content:has-text("Manage Apps")' ,
212- ) ;
223+ // In Ant Design 6, use role-based selector for dialog
224+ const modalAfterAdd = page . getByRole ( 'dialog' , { name : / M a n a g e A p p s / i } ) ;
213225 await expect ( modalAfterAdd ) . toBeVisible ( ) ;
214226 const numberOfApps = await modalAfterAdd . locator ( '.ant-form-item' ) . count ( ) ;
215227 expect ( numberOfApps ) . toBe ( numberOfAppsBeforeAdd + 1 ) ;
0 commit comments