9
9
updateDocTitle ,
10
10
verifyDocName ,
11
11
} from './utils-common' ;
12
+ import { addNewMember } from './utils-share' ;
12
13
import { clickOnAddRootSubPage , createRootSubPage } from './utils-sub-pages' ;
13
14
14
15
test . describe ( 'Doc Tree' , ( ) => {
@@ -184,13 +185,14 @@ test.describe('Doc Tree', () => {
184
185
const docTree = page . getByTestId ( 'doc-tree' ) ;
185
186
await expect ( docTree . getByText ( docChild ) ) . toBeVisible ( ) ;
186
187
await docTree . click ( ) ;
187
- const child = docTree . locator ( '.--docs-sub-page-item' ) . filter ( {
188
- hasText : docChild ,
189
- } ) ;
188
+ const child = docTree
189
+ . getByRole ( 'treeitem' )
190
+ . locator ( '.--docs-sub-page-item' )
191
+ . filter ( {
192
+ hasText : docChild ,
193
+ } ) ;
190
194
await child . hover ( ) ;
191
- // Wait a bit for the hover effect to take place
192
195
const menu = child . getByText ( `more_horiz` ) ;
193
- await expect ( menu ) . toBeVisible ( ) ;
194
196
await menu . click ( ) ;
195
197
await page . getByText ( 'Move to my docs' ) . click ( ) ;
196
198
@@ -213,38 +215,43 @@ test.describe('Doc Tree', () => {
213
215
214
216
await verifyDocName ( page , docParent ) ;
215
217
216
- // Create a child document first
218
+ await page . getByRole ( 'button' , { name : 'Share' } ) . click ( ) ;
219
+
220
+ await addNewMember ( page , 0 , 'Owner' , 'impress' ) ;
221
+
222
+ const list = page . getByTestId ( 'doc-share-quick-search' ) ;
223
+ const currentUser = list . getByTestId (
224
+ `doc-share-member-row-user@${ browserName } .test` ,
225
+ ) ;
226
+ const currentUserRole = currentUser . getByLabel ( 'doc-role-dropdown' ) ;
227
+ await currentUserRole . click ( ) ;
228
+ await page . getByLabel ( 'Administrator' ) . click ( ) ;
229
+ await list . click ( ) ;
230
+
231
+ await page . getByRole ( 'button' , { name : 'Ok' } ) . click ( ) ;
232
+
217
233
const { name : docChild } = await createRootSubPage (
218
234
page ,
219
235
browserName ,
220
236
'doc-tree-detach-child' ,
221
237
) ;
222
238
223
- // Now try to detach the child document - this should work for the owner
224
239
const docTree = page . getByTestId ( 'doc-tree' ) ;
225
240
await expect ( docTree . getByText ( docChild ) ) . toBeVisible ( ) ;
226
241
await docTree . click ( ) ;
227
- const child = docTree . locator ( '.--docs-sub-page-item' ) . filter ( {
228
- hasText : docChild ,
229
- } ) ;
242
+ const child = docTree
243
+ . getByRole ( 'treeitem' )
244
+ . locator ( '.--docs-sub-page-item' )
245
+ . filter ( {
246
+ hasText : docChild ,
247
+ } ) ;
230
248
await child . hover ( ) ;
231
- // Wait a bit for the hover effect to take place
232
249
const menu = child . getByText ( `more_horiz` ) ;
233
- await expect ( menu ) . toBeVisible ( ) ;
234
250
await menu . click ( ) ;
235
251
236
- // The owner should be able to detach the document
237
- await page . getByRole ( 'menuitem' , { name : 'Move to my docs' } ) . click ( ) ;
238
-
239
- // Verify the document was detached - it should no longer be in the current tree
240
252
await expect (
241
- page . getByRole ( 'textbox' , { name : 'doc title input' } ) ,
242
- ) . not . toHaveText ( docChild ) ;
243
-
244
- // Verify the document is now on the home page
245
- const header = page . locator ( 'header' ) . first ( ) ;
246
- await header . locator ( 'h1' ) . getByText ( 'Docs' ) . click ( ) ;
247
- await expect ( page . getByText ( docChild ) ) . toBeVisible ( ) ;
253
+ page . getByRole ( 'menuitem' , { name : 'Move to my docs' } ) ,
254
+ ) . toHaveAttribute ( 'aria-disabled' , 'true' ) ;
248
255
} ) ;
249
256
} ) ;
250
257
0 commit comments