From ff7a3cff12989f024b826c06e6f8069d1fbb9ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20=C5=9Awiderski?= Date: Tue, 15 Sep 2026 12:31:05 +0200 Subject: [PATCH] [ACS-12817] more test stabilization --- .../src/tests/collaborator-actions.e2e.ts | 15 +- ...file-locked-by-current-user-actions.e2e.ts | 5 + ...ile-locked-by-other-manager-actions.e2e.ts | 105 +- .../src/tests/consumer-viewer-actions.e2e.ts | 1214 +++++++++-------- .../src/api/nodes-api.ts | 4 +- 5 files changed, 703 insertions(+), 640 deletions(-) diff --git a/e2e/playwright/special-permissions-collaborator-locked/src/tests/collaborator-actions.e2e.ts b/e2e/playwright/special-permissions-collaborator-locked/src/tests/collaborator-actions.e2e.ts index 5f4511c87..12e7cf9f6 100644 --- a/e2e/playwright/special-permissions-collaborator-locked/src/tests/collaborator-actions.e2e.ts +++ b/e2e/playwright/special-permissions-collaborator-locked/src/tests/collaborator-actions.e2e.ts @@ -48,10 +48,19 @@ const collaboratorEditRowToolbarMore = [ 'Edit Aspects', 'Permissions' ]; +const collaboratorSharedSearchRowToolbarMore = [ + 'Edit Offline', + 'Upload New Version', + 'Favorite', + 'Copy', + 'Manage Versions', + 'Edit Aspects', + 'Permissions' +]; const favoritesCollaboratorToolbarMore = [ 'Edit Offline', 'Upload New Version', - 'Remove Favorite', + 'Favorite', 'Move', 'Copy', 'Delete', @@ -165,7 +174,7 @@ test.describe('Special permissions - Collaborator available actions : ', () => { test('[XAT-4845] Toolbar - Actions appear correctly for a file - Collaborator - Shared', async ({ sharedPage, myLibrariesPage }) => { await sharedPage.navigate(); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, collaboratorEditRowToolbarMore); + await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, collaboratorSharedSearchRowToolbarMore); }); }); @@ -187,7 +196,7 @@ test.describe('Special permissions - Collaborator available actions : ', () => { test('[XAT-4847] Toolbar - Actions appear correctly for a file - Collaborator - Search Results', async ({ searchPage, myLibrariesPage }) => { await searchPage.searchWithin(item.random, 'filesAndFolders', 'formula'); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, collaboratorEditRowToolbarMore); + await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, collaboratorSharedSearchRowToolbarMore); }); }); diff --git a/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-current-user-actions.e2e.ts b/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-current-user-actions.e2e.ts index 94d176590..f945979d0 100644 --- a/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-current-user-actions.e2e.ts +++ b/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-current-user-actions.e2e.ts @@ -57,6 +57,7 @@ test.describe('Special permissions - File locked, user is lock owner : ', () => const sitePrivate = `site-private-locked-owner-${random}`; const userManager = `manager-locked-owner-${random}`; const userDemoted = `demoted-owner-${random}`; + const lockedFileIds: string[] = []; let docLibId: string; let managerNodeActions: NodesApi; @@ -65,6 +66,7 @@ test.describe('Special permissions - File locked, user is lock owner : ', () => let demotedUserActions: NodesApi; let demotedUserFavoritesActions: FavoritesApi; let demotedUserShareActions: SharedLinksApi; + let adminNodeActions: NodesApi; const provisionFile = async (item: LockedFile): Promise => { test.setTimeout(timeouts.extendedTest); @@ -75,6 +77,7 @@ test.describe('Special permissions - File locked, user is lock owner : ', () => item.id = (await managerNodeActions.createFile(item.name, docLibId, '', '', '', true, ['cm:versionable'])).entry.id; await demotedUserActions.checkoutNodes([item.id]); + lockedFileIds.push(item.id); await demotedUserFavoritesActions.addFavoriteById('file', item.id); await demotedUserShareActions.shareFileById(item.id); @@ -100,6 +103,7 @@ test.describe('Special permissions - File locked, user is lock owner : ', () => demotedUserActions = await NodesApi.initialize(userDemoted, userDemoted); demotedUserFavoritesActions = await FavoritesApi.initialize(userDemoted, userDemoted); demotedUserShareActions = await SharedLinksApi.initialize(userDemoted, userDemoted); + adminNodeActions = await NodesApi.initialize('admin'); await managerSiteActions.createSite(sitePrivate, Site.VisibilityEnum.PRIVATE); docLibId = await managerSiteActions.getDocLibId(sitePrivate); @@ -112,6 +116,7 @@ test.describe('Special permissions - File locked, user is lock owner : ', () => }); test.afterAll(async () => { + await adminNodeActions.cancelCheckout(lockedFileIds); await Utils.deleteNodesSitesEmptyTrashcan(undefined, undefined, 'afterAll failed', managerSiteActions, [sitePrivate]); }); diff --git a/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-other-manager-actions.e2e.ts b/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-other-manager-actions.e2e.ts index 3eb167769..6dfa00344 100644 --- a/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-other-manager-actions.e2e.ts +++ b/e2e/playwright/special-permissions-collaborator-locked/src/tests/file-locked-by-other-manager-actions.e2e.ts @@ -38,7 +38,8 @@ import { checkActionsAvailable, checkActionsViewerAvailable } from './permission const collaboratorToolbarPrimary = ['View', 'View Details', 'More Actions']; const collaboratorViewerLockedToolbarPrimary = ['Activate full-screen mode', 'View Details', 'More Actions']; -const lockOtherUserToolbarMore = ['Cancel Editing', 'Favorite', 'Move', 'Copy', 'Permissions']; +const lockOtherUserAdminFavToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Copy']; +const lockOtherUserManagerFavToolbarMore = ['Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Copy']; const lockOtherUserSearchToolbarMore = ['Cancel Editing', 'Favorite', 'Copy', 'Permissions']; interface ManagerLockedFile { @@ -59,6 +60,7 @@ test.describe('Special permissions - File locked by other user, user is manager const otherManager = `other-manager-locked-other-${random}`; const sitePrivate = `site-private-locked-other-${random}`; const apiClientFactory = new ApiClientFactory(); + const lockedFileIds: string[] = []; let managerSiteActions: SitesApi; let managerNodeActions: NodesApi; @@ -66,22 +68,30 @@ test.describe('Special permissions - File locked by other user, user is manager let managerSearchActions: SearchApi; let otherManagerNodeActions: NodesApi; let otherManagerShareActions: SharedLinksApi; + let otherManagerFavoritesActions: FavoritesApi; + let adminNodeActions: NodesApi; let docLibId: string; - const provisionFile = async (item: ManagerLockedFile): Promise => { + const provisionFile = async ( + managerLockedFile: ManagerLockedFile, + { favoritedByOtherManager = false }: { favoritedByOtherManager?: boolean } = {} + ): Promise => { test.setTimeout(timeouts.extendedTest); - const managerFavoritesTotalItems = await managerFavoritesActions.getFavoritesTotalItems(userManager); + const favoritesActions = favoritedByOtherManager ? otherManagerFavoritesActions : managerFavoritesActions; + const favoritesUser = favoritedByOtherManager ? otherManager : userManager; + const favoritesTotalItems = await favoritesActions.getFavoritesTotalItems(favoritesUser); const managerSearchTotalItems = await managerSearchActions.getTotalItems(userManager); - item.id = (await managerNodeActions.createFile(item.name, docLibId, '', '', '', true, ['cm:versionable'])).entry.id; - await otherManagerNodeActions.checkoutNodes([item.id]); - await otherManagerShareActions.shareFileById(item.id); - await managerFavoritesActions.addFavoriteById('file', item.id); + managerLockedFile.id = (await managerNodeActions.createFile(managerLockedFile.name, docLibId, '', '', '', true, ['cm:versionable'])).entry.id; + await otherManagerNodeActions.checkoutNodes([managerLockedFile.id]); + lockedFileIds.push(managerLockedFile.id); + await otherManagerShareActions.shareFileById(managerLockedFile.id); + await favoritesActions.addFavoriteById('file', managerLockedFile.id); - await managerFavoritesActions.isFavoriteWithRetry(userManager, item.id, { expect: true }); + await favoritesActions.isFavoriteWithRetry(favoritesUser, managerLockedFile.id, { expect: true }); await Promise.all([ - managerFavoritesActions.waitForApi(userManager, { expect: managerFavoritesTotalItems + 1 }), - otherManagerShareActions.waitForFilesToBeShared([item.id]), + favoritesActions.waitForApi(favoritesUser, { expect: favoritesTotalItems + 1 }), + otherManagerShareActions.waitForFilesToBeShared([managerLockedFile.id]), managerSearchActions.waitForApi(userManager, { expect: managerSearchTotalItems + 1 }) ]); }; @@ -98,6 +108,8 @@ test.describe('Special permissions - File locked by other user, user is manager managerSearchActions = await SearchApi.initialize(userManager, userManager); otherManagerNodeActions = await NodesApi.initialize(otherManager, otherManager); otherManagerShareActions = await SharedLinksApi.initialize(otherManager, otherManager); + otherManagerFavoritesActions = await FavoritesApi.initialize(otherManager, otherManager); + adminNodeActions = await NodesApi.initialize('admin'); await managerSiteActions.createSite(sitePrivate, Site.VisibilityEnum.PRIVATE); await managerSiteActions.addSiteMember(sitePrivate, otherManager, Site.RoleEnum.SiteManager); @@ -109,105 +121,126 @@ test.describe('Special permissions - File locked by other user, user is manager }); test.afterAll(async () => { + await adminNodeActions.cancelCheckout(lockedFileIds); await Utils.deleteNodesSitesEmptyTrashcan(undefined, undefined, 'afterAll failed', managerSiteActions, [sitePrivate]); }); test.describe('File Libraries - row actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4860] Toolbar - Correct actions appear for file - on File Libraries - Locked File - Other User', async ({ myLibrariesPage }) => { await myLibrariesPage.navigate(); await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(sitePrivate); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsAvailable(myLibrariesPage, managerLockedFile.name, collaboratorToolbarPrimary, lockOtherUserAdminFavToolbarMore); }); }); test.describe('Shared Files - row actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4861] Toolbar - Correct actions appear for file - on Shared Files - Locked File - Other User', async ({ sharedPage, myLibrariesPage }) => { await sharedPage.navigate(); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsAvailable(myLibrariesPage, managerLockedFile.name, collaboratorToolbarPrimary, lockOtherUserAdminFavToolbarMore); }); }); test.describe('Favorites - row actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile, { favoritedByOtherManager: true })); test('[XAT-4862] Toolbar - Correct actions appear for file - on Favorites - Locked File - Other User', async ({ favoritePage, myLibrariesPage }) => { await favoritePage.navigate(); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsAvailable(myLibrariesPage, managerLockedFile.name, collaboratorToolbarPrimary, lockOtherUserAdminFavToolbarMore); }); }); test.describe('Search Results - row actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4863] Toolbar - Correct actions appear for file - on Search Results - Locked File - Other User', async ({ searchPage, myLibrariesPage }) => { - await searchPage.searchWithin(item.random, 'filesAndFolders', 'formula'); - await checkActionsAvailable(myLibrariesPage, item.name, collaboratorToolbarPrimary, lockOtherUserSearchToolbarMore); + await searchPage.searchWithin(managerLockedFile.random, 'filesAndFolders', 'formula'); + await checkActionsAvailable(myLibrariesPage, managerLockedFile.name, collaboratorToolbarPrimary, lockOtherUserSearchToolbarMore); }); }); test.describe('File Libraries - viewer actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4864] Correct actions appear for file opened from File Libraries - viewer - locked', async ({ myLibrariesPage }) => { await myLibrariesPage.navigate(); await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(sitePrivate); - await checkActionsViewerAvailable(myLibrariesPage, item.name, collaboratorViewerLockedToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsViewerAvailable( + myLibrariesPage, + managerLockedFile.name, + collaboratorViewerLockedToolbarPrimary, + lockOtherUserAdminFavToolbarMore + ); }); }); test.describe('Shared Files - viewer actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4865] Correct actions appear for file opened from Shared Files - viewer - locked', async ({ sharedPage, myLibrariesPage }) => { await sharedPage.navigate(); - await checkActionsViewerAvailable(myLibrariesPage, item.name, collaboratorViewerLockedToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsViewerAvailable( + myLibrariesPage, + managerLockedFile.name, + collaboratorViewerLockedToolbarPrimary, + lockOtherUserAdminFavToolbarMore + ); }); }); test.describe('Favorites - viewer actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile, { favoritedByOtherManager: true })); test('[XAT-4866] Correct actions appear for file opened from Favorites - viewer - locked', async ({ favoritePage, myLibrariesPage }) => { await favoritePage.navigate(); - await checkActionsViewerAvailable(myLibrariesPage, item.name, collaboratorViewerLockedToolbarPrimary, lockOtherUserToolbarMore); + await checkActionsViewerAvailable( + myLibrariesPage, + managerLockedFile.name, + collaboratorViewerLockedToolbarPrimary, + lockOtherUserManagerFavToolbarMore + ); }); }); test.describe('Search Results - viewer actions', () => { - const item = buildFile(); + const managerLockedFile = buildFile(); - test.beforeAll(() => provisionFile(item)); + test.beforeAll(() => provisionFile(managerLockedFile)); test('[XAT-4867] Correct actions appear for file opened from Search Results - viewer - locked', async ({ searchPage, myLibrariesPage }) => { - await searchPage.searchWithin(item.random, 'filesAndFolders', 'formula'); - await checkActionsViewerAvailable(myLibrariesPage, item.name, collaboratorViewerLockedToolbarPrimary, lockOtherUserSearchToolbarMore); + await searchPage.searchWithin(managerLockedFile.random, 'filesAndFolders', 'formula'); + await checkActionsViewerAvailable( + myLibrariesPage, + managerLockedFile.name, + collaboratorViewerLockedToolbarPrimary, + lockOtherUserSearchToolbarMore + ); }); }); }); diff --git a/e2e/playwright/special-permissions-consumer/src/tests/consumer-viewer-actions.e2e.ts b/e2e/playwright/special-permissions-consumer/src/tests/consumer-viewer-actions.e2e.ts index bdf287dc3..76a1ae0ee 100644 --- a/e2e/playwright/special-permissions-consumer/src/tests/consumer-viewer-actions.e2e.ts +++ b/e2e/playwright/special-permissions-consumer/src/tests/consumer-viewer-actions.e2e.ts @@ -49,7 +49,8 @@ const viewerLockedPrimary = ['Activate full-screen mode', 'View Details', 'More const viewerMore = ['Favorite', 'Copy', 'Manage Versions']; const viewerFavMore = ['Remove Favorite', 'Copy', 'Manage Versions']; const viewerLockedMore = ['Favorite', 'Copy']; -const viewerLockedFavMore = ['Favorite', 'Copy']; +const viewerLockedFavWorkingCopyMore = ['Favorite', 'Copy']; +const viewerLockedFavOriginalMore = ['Remove Favorite', 'Copy']; const viewerNotVersionableMore = ['Favorite', 'Copy']; interface ConsumerFile { @@ -95,6 +96,7 @@ test.describe('Special permissions - Consumer viewer actions : ', () => { let managerSiteActions: SitesApi; let managerFileActions: FileActionsApi; let managerSearchActions: SearchApi; + let consumerNodeActions: NodesApi; let consumerFavoritesActions: FavoritesApi; let consumerShareActions: SharedLinksApi; @@ -116,6 +118,8 @@ test.describe('Special permissions - Consumer viewer actions : ', () => { if (item.favorite) { await consumerFavoritesActions.addFavoriteById('file', item.id); await consumerFavoritesActions.isFavoriteWithRetry(userConsumer, item.id, { expect: true }); + const consumerNode = await consumerNodeActions.getNodeById(item.id, { include: ['isFavorite'] }); + expect(consumerNode.entry.isFavorite, `${item.name}: consumer should see isFavorite=true`).toBe(true); } if (item.shared) { await consumerShareActions.shareFileById(item.id); @@ -175,6 +179,7 @@ test.describe('Special permissions - Consumer viewer actions : ', () => { managerSiteActions = await SitesApi.initialize(userManager, userManager); managerFileActions = await FileActionsApi.initialize(userManager, userManager); managerSearchActions = await SearchApi.initialize(userManager, userManager); + consumerNodeActions = await NodesApi.initialize(userConsumer, userConsumer); consumerFavoritesActions = await FavoritesApi.initialize(userConsumer, userConsumer); consumerShareActions = await SharedLinksApi.initialize(userConsumer, userConsumer); @@ -187,627 +192,638 @@ test.describe('Special permissions - Consumer viewer actions : ', () => { await Utils.deleteNodesSitesEmptyTrashcan(undefined, undefined, 'afterAll failed', managerSiteActions, [sitePrivate]); }); - test.describe('File Libraries - Office file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx.docx`, { - office: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerMore + test.describe('File Libraries', () => { + test.describe('File Libraries - Office file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx.docx`, { + office: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4808] Actions for Consumer on a file Office', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); }); - test.beforeAll(() => provisionFile(item)); + test.describe('File Libraries - Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { + office: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); - test('[XAT-4808] Actions for Consumer on a file Office', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4809] Actions for Consumer on a file Office, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - non-Office file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}.txt`, { + versionable: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4810] Actions for Consumer on a file, not Office', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - non-Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { + versionable: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4811] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - non-versionable file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-not-versionable.txt`, { + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerNotVersionableMore, + expectNoManageVersions: true + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-20145] Manage Versions is not shown for a file without cm:versionable aspect', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { + office: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4814] Actions for Consumer on a file Office, shared', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { + office: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4815] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - non-Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { + versionable: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4816] Actions for Consumer on a file, not Office, shared', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - non-Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { + versionable: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4817] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - locked file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-locked`, { + versionable: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4812] Actions for Consumer on a file, locked', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - locked file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { + versionable: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavWorkingCopyMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4813] Actions for Consumer on a file, locked, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - locked file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { + versionable: true, + shared: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4818] Actions for Consumer on a file, locked, shared', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); + }); + + test.describe('File Libraries - locked file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { + versionable: true, + shared: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavWorkingCopyMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4819] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, myLibrariesPage }) => { + await openInLibraries(myLibrariesPage, loginPage, item.name); + await verifyViewerActions(myLibrariesPage, item); + }); }); }); - test.describe('File Libraries - Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { - office: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore + test.describe('Favorites', () => { + test.describe('Favorites - Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { + office: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4820] File Office, favorite - ', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); }); - test.beforeAll(() => provisionFile(item)); + test.describe('Favorites - non-Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { + versionable: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); - test('[XAT-4809] Actions for Consumer on a file Office, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4821] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); + }); + + test.describe('Favorites - Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { + office: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4823] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); + }); + + test.describe('Favorites - non-Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { + versionable: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4824] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); + }); + + test.describe('Favorites - locked file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { + versionable: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavOriginalMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4822] Actions for Consumer on a file, locked, favorite', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); + }); + + test.describe('Favorites - locked file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { + versionable: true, + shared: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavOriginalMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4825] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, favoritePage }) => { + await openInFavorites(favoritePage, loginPage, item.name); + await verifyViewerActions(favoritePage, item); + }); }); }); - test.describe('File Libraries - non-Office file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}.txt`, { - versionable: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerMore + test.describe('Shared Files', () => { + test.describe('Shared Files - Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { + office: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4826] Actions for Consumer on a file Office, shared', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); }); - test.beforeAll(() => provisionFile(item)); + test.describe('Shared Files - Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { + office: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); - test('[XAT-4810] Actions for Consumer on a file, not Office', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4827] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); + }); + + test.describe('Shared Files - non-Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { + versionable: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4828] Actions for Consumer on a file, not Office, shared', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); + }); + + test.describe('Shared Files - non-Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { + versionable: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4829] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); + }); + + test.describe('Shared Files - locked file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { + versionable: true, + shared: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4830] Actions for Consumer on a file, locked, shared', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); + }); + + test.describe('Shared Files - locked file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { + versionable: true, + shared: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavOriginalMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4831] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, sharedPage }) => { + await openInShared(sharedPage, loginPage, item.name); + await verifyViewerActions(sharedPage, item); + }); }); }); - test.describe('File Libraries - non-Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { - versionable: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore + test.describe('Search Results', () => { + test.describe('Search Results - Office file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx.docx`, { + office: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4832] Actions for Consumer on a file Office', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); }); - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4811] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - non-versionable file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-not-versionable.txt`, { - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerNotVersionableMore, - expectNoManageVersions: true - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-20145] Manage Versions is not shown for a file without cm:versionable aspect', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { - office: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4814] Actions for Consumer on a file Office, shared', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { - office: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4815] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - non-Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { - versionable: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4816] Actions for Consumer on a file, not Office, shared', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - non-Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { - versionable: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4817] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - locked file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-locked`, { - versionable: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4812] Actions for Consumer on a file, locked', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - locked file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { - versionable: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4813] Actions for Consumer on a file, locked, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - locked file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { - versionable: true, - shared: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4818] Actions for Consumer on a file, locked, shared', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('File Libraries - locked file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { - versionable: true, - shared: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4819] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, myLibrariesPage }) => { - await openInLibraries(myLibrariesPage, loginPage, item.name); - await verifyViewerActions(myLibrariesPage, item); - }); - }); - - test.describe('Favorites - Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { - office: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4820] File Office, favorite - ', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Favorites - non-Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { - versionable: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4821] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Favorites - Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { - office: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4823] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Favorites - non-Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { - versionable: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4824] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Favorites - locked file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { - versionable: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4822] Actions for Consumer on a file, locked, favorite', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Favorites - locked file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { - versionable: true, - shared: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4825] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, favoritePage }) => { - await openInFavorites(favoritePage, loginPage, item.name); - await verifyViewerActions(favoritePage, item); - }); - }); - - test.describe('Shared Files - Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { - office: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4826] Actions for Consumer on a file Office, shared', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Shared Files - Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { - office: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4827] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Shared Files - non-Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { - versionable: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4828] Actions for Consumer on a file, not Office, shared', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Shared Files - non-Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { - versionable: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4829] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Shared Files - locked file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { - versionable: true, - shared: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4830] Actions for Consumer on a file, locked, shared', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Shared Files - locked file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { - versionable: true, - shared: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4831] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, sharedPage }) => { - await openInShared(sharedPage, loginPage, item.name); - await verifyViewerActions(sharedPage, item); - }); - }); - - test.describe('Search Results - Office file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx.docx`, { - office: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4832] Actions for Consumer on a file Office', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { - office: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4833] Actions for Consumer on a file Office, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - non-Office file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}.txt`, { - versionable: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4834] Actions for Consumer on a file, not Office', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - non-Office file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { - versionable: true, - favorite: true, - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4835] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - non-versionable file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-not-versionable.txt`, { - viewerToolbarPrimary: viewerPrimary, - viewerToolbarMore: viewerNotVersionableMore, - expectNoManageVersions: true - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-20146] Manage Versions is not shown for a file without cm:versionable aspect - Search Results', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { - office: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4838] Actions for Consumer on a file Office, shared', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { - office: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4839] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - non-Office file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { - versionable: true, - shared: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4840] Actions for Consumer on a file, not Office, shared', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - non-Office file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { - versionable: true, - shared: true, - favorite: true, - viewerToolbarPrimary: viewerSharedPrimary, - viewerToolbarMore: viewerFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4841] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - locked file', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-locked`, { - versionable: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4836] Actions for Consumer on a file, locked', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - locked file, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { - versionable: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4837] Actions for Consumer on a file, locked, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - locked file, shared', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { - versionable: true, - shared: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedMore - }); - - test.beforeAll(() => provisionFile(item)); - - test('[XAT-4842] Actions for Consumer on a file, locked, shared', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); - }); - }); - - test.describe('Search Results - locked file, shared, favorite', () => { - const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { - versionable: true, - shared: true, - favorite: true, - locked: true, - viewerToolbarPrimary: viewerLockedPrimary, - viewerToolbarMore: viewerLockedFavMore + test.describe('Search Results - Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-fav.docx`, { + office: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4833] Actions for Consumer on a file Office, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - non-Office file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}.txt`, { + versionable: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4834] Actions for Consumer on a file, not Office', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); }); - test.beforeAll(() => provisionFile(item)); + test.describe('Search Results - non-Office file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav.txt`, { + versionable: true, + favorite: true, + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4835] Actions for Consumer on a file, not Office, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); - test('[XAT-4843] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, searchPage }) => { - await openInSearch(searchPage, loginPage, item); - await verifyViewerActions(searchPage, item); + test.describe('Search Results - non-versionable file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-not-versionable.txt`, { + viewerToolbarPrimary: viewerPrimary, + viewerToolbarMore: viewerNotVersionableMore, + expectNoManageVersions: true + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-20146] Manage Versions is not shown for a file without cm:versionable aspect - Search Results', async ({ + loginPage, + searchPage + }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared.docx`, { + office: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4838] Actions for Consumer on a file Office, shared', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-docx-shared-fav.docx`, { + office: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4839] Actions for Consumer on a file Office, shared, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - non-Office file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared.txt`, { + versionable: true, + shared: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4840] Actions for Consumer on a file, not Office, shared', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - non-Office file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav.txt`, { + versionable: true, + shared: true, + favorite: true, + viewerToolbarPrimary: viewerSharedPrimary, + viewerToolbarMore: viewerFavMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4841] Actions for Consumer on a file, not Office, shared, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - locked file', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-locked`, { + versionable: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4836] Actions for Consumer on a file, locked', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - locked file, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-fav-locked`, { + versionable: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavWorkingCopyMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4837] Actions for Consumer on a file, locked, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - locked file, shared', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-locked`, { + versionable: true, + shared: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4842] Actions for Consumer on a file, locked, shared', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); + }); + + test.describe('Search Results - locked file, shared, favorite', () => { + const item = buildFile((fileRandom) => `file-${fileRandom}-shared-fav-locked`, { + versionable: true, + shared: true, + favorite: true, + locked: true, + viewerToolbarPrimary: viewerLockedPrimary, + viewerToolbarMore: viewerLockedFavWorkingCopyMore + }); + + test.beforeAll(() => provisionFile(item)); + + test('[XAT-4843] Actions for Consumer on a file, locked, shared, favorite', async ({ loginPage, searchPage }) => { + await openInSearch(searchPage, loginPage, item); + await verifyViewerActions(searchPage, item); + }); }); }); }); diff --git a/projects/aca-playwright-shared/src/api/nodes-api.ts b/projects/aca-playwright-shared/src/api/nodes-api.ts index dd8d38f0b..c3a72f023 100755 --- a/projects/aca-playwright-shared/src/api/nodes-api.ts +++ b/projects/aca-playwright-shared/src/api/nodes-api.ts @@ -238,9 +238,9 @@ export class NodesApi { } } - async getNodeById(id: string): Promise { + async getNodeById(id: string, opts?: NodesIncludeQuery): Promise { try { - return this.apiService.nodes.getNode(id); + return this.apiService.nodes.getNode(id, opts); } catch (error) { const message = `${this.constructor.name} ${this.getNodeById.name}: ${error}`; logger.error(message);