@@ -122,14 +122,44 @@ export async function fillOutVaadinGridCellFilter(
122122 await nameInput . fill ( inputValue ) ;
123123}
124124
125+ async function removeSearchButton ( page : Page , folderName : string ) {
126+ await page
127+ . getByTestId ( 'vfolder-filter' )
128+ . locator ( 'div' )
129+ . filter ( { hasText : `Name: ${ folderName } ` } )
130+ . locator ( 'svg' )
131+ . first ( )
132+ . click ( ) ;
133+ }
134+
135+ export async function verifyVFolder (
136+ page : Page ,
137+ folderName : string ,
138+ statusTab : 'Created' | 'Trash' = 'Created' ,
139+ ) {
140+ await page . getByRole ( 'link' , { name : 'Data' } ) . click ( ) ;
141+ await page . getByRole ( 'tab' , { name : statusTab } ) . click ( ) ;
142+ await page . getByTestId ( 'vfolder-filter' ) . locator ( 'div' ) . nth ( 2 ) . click ( ) ;
143+ await page . getByRole ( 'option' , { name : 'Name' } ) . locator ( 'div' ) . click ( ) ;
144+ const searchInput = page . locator ( '#rc_select_8' ) ;
145+ await searchInput . fill ( folderName ) ;
146+ await page . getByRole ( 'button' , { name : 'search' } ) . click ( ) ;
147+ await expect (
148+ page
149+ . getByRole ( 'cell' , { name : `VFolder Identicon ${ folderName } ` } )
150+ . filter ( { hasText : folderName } ) ,
151+ ) . toBeVisible ( ) ;
152+ await removeSearchButton ( page , folderName ) ;
153+ }
154+
125155export async function createVFolderAndVerify (
126156 page : Page ,
127157 folderName : string ,
128158 usageMode : 'general' | 'model' = 'general' ,
129159 type : 'user' | 'project' = 'user' ,
130160 permission : 'rw' | 'ro' = 'rw' ,
131161) {
132- await navigateTo ( page , 'data' ) ;
162+ await page . getByRole ( 'link' , { name : 'Data' } ) . click ( ) ;
133163
134164 await page . getByRole ( 'button' , { name : 'Create Folder' } ) . nth ( 1 ) . click ( ) ;
135165 await page . getByRole ( 'textbox' , { name : 'Folder name' } ) . fill ( folderName ) ;
@@ -140,63 +170,55 @@ export async function createVFolderAndVerify(
140170 await page . getByTestId ( `${ permission } -permission` ) . click ( ) ;
141171
142172 await page . getByRole ( 'button' , { name : 'Create' , exact : true } ) . click ( ) ;
143- await page . reload ( ) ;
173+ await verifyVFolder ( page , folderName ) ;
174+ }
175+
176+ export async function moveToTrashAndVerify ( page : Page , folderName : string ) {
177+ await page . getByRole ( 'link' , { name : 'Data' } ) . click ( ) ;
144178 await page . getByTestId ( 'vfolder-filter' ) . locator ( 'div' ) . nth ( 2 ) . click ( ) ;
145179 await page . getByRole ( 'option' , { name : 'Name' } ) . locator ( 'div' ) . click ( ) ;
146- await page . locator ( '#rc_select_8' ) . fill ( folderName ) ;
180+ const searchInput = page . locator ( '#rc_select_8' ) ;
181+ await searchInput . fill ( folderName ) ;
147182 await page . getByRole ( 'button' , { name : 'search' } ) . click ( ) ;
148- await page . getByRole ( 'link' , { name : folderName } ) . click ( ) ;
149- await expect (
150- page
151- . getByRole ( 'cell' , { name : `VFolder Identicon ${ folderName } ` } )
152- . filter ( { hasText : folderName } ) ,
153- ) . toBeVisible ( ) ;
183+ await page
184+ . getByRole ( 'row' , { name : 'VFolder Identicon e2e-test-' } )
185+ . getByRole ( 'button' )
186+ . nth ( 1 )
187+ . click ( ) ;
188+ await page . getByRole ( 'button' , { name : 'Move' } ) . click ( ) ;
189+ await removeSearchButton ( page , folderName ) ;
190+ await verifyVFolder ( page , folderName , 'Trash' ) ;
154191}
155192
156- export async function deleteVFolderAndVerify ( page : Page , folderName : string ) {
157- await navigateTo ( page , 'data' ) ;
158- const nameInput = page
159- . locator ( '#general-folder-storage vaadin-grid-cell-content' )
160- . filter ( { hasText : 'Name' } )
161- . locator ( 'vaadin-text-field' )
162- . nth ( 1 )
163- . locator ( 'input' ) ;
164- await nameInput . click ( ) ;
165- await nameInput . fill ( folderName ) ;
166- await page . waitForTimeout ( 1000 ) ;
167- await page . getByRole ( 'button' , { name : 'delete' } ) . first ( ) . click ( ) ;
193+ export async function deleteForeverAndVerifyFromTrash (
194+ page : Page ,
195+ folderName : string ,
196+ ) {
197+ await page . getByRole ( 'link' , { name : 'Data' } ) . click ( ) ;
198+ await page . getByRole ( 'tab' , { name : 'Trash' } ) . click ( ) ;
199+ const searchInput = page . locator ( '#rc_select_8' ) ;
200+ await searchInput . fill ( folderName ) ;
201+ await page . getByRole ( 'button' , { name : 'search' } ) . click ( ) ;
202+ // Delete forever
168203 await page
169- . locator ( '#delete-without-confirm-button' )
170- . getByLabel ( 'delete' )
171- . click ( ) ;
172- await page . waitForLoadState ( 'networkidle' ) ;
173- await page . getByRole ( 'tab' , { name : 'delete' } ) . click ( ) ;
174- const nameInputInTrash = page
175- . locator ( '#trash-bin-folder-storage vaadin-grid-cell-content' )
176- . filter ( { hasText : 'Name' } )
177- . locator ( 'vaadin-text-field' )
204+ . getByRole ( 'row' , { name : 'VFolder Identicon e2e-test-' } )
205+ . getByRole ( 'button' )
178206 . nth ( 1 )
179- . locator ( 'input' ) ;
180- await nameInputInTrash . fill ( folderName ) ;
181- // after filling the input, the vaadin-grid will be updated asynchronously. So we need to wait for the grid to be updated.
182- await page . waitForTimeout ( 1000 ) ;
183- await page
184- . locator ( 'vaadin-grid-cell-content' )
185- . filter ( { hasText : folderName } )
186- . locator ( '//following-sibling::*[7]' )
187- . getByRole ( 'button' , { name : 'delete_forever' } )
188207 . click ( ) ;
189- await page
190- . getByRole ( 'textbox' , { name : 'Type folder name to delete' } )
191- . fill ( folderName ) ;
208+ await page . locator ( '#confirmText' ) . click ( ) ;
209+ await page . locator ( '#confirmText' ) . fill ( folderName ) ;
192210 await page . getByRole ( 'button' , { name : 'Delete forever' } ) . click ( ) ;
211+ // Verify
212+ await page . getByTestId ( 'vfolder-filter' ) . locator ( 'div' ) . nth ( 2 ) . click ( ) ;
213+ await page . getByRole ( 'option' , { name : 'Name' } ) . locator ( 'div' ) . click ( ) ;
214+ await searchInput . fill ( folderName ) ;
215+ await page . getByRole ( 'button' , { name : 'search' } ) . click ( ) ;
193216 await expect (
194217 page
195- . locator ( 'vaadin-grid-cell-content' )
196- . filter ( { hasText : folderName } )
197- . locator ( ':visible' ) ,
218+ . getByRole ( 'cell' , { name : `VFolder Identicon ${ folderName } ` } )
219+ . filter ( { hasText : folderName } ) ,
198220 ) . toHaveCount ( 0 ) ;
199- await nameInputInTrash . fill ( '' ) ;
221+ await removeSearchButton ( page , folderName ) ;
200222}
201223
202224export async function createSession ( page : Page , sessionName : string ) {
0 commit comments