mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-16 18:12:50 +00:00
[ACS-12817] more test stabilization
This commit is contained in:
committed by
Adam Świderski
parent
021d7ff682
commit
ff7a3cff12
+12
-3
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+5
@@ -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<void> => {
|
||||
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]);
|
||||
});
|
||||
|
||||
|
||||
+69
-36
@@ -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<void> => {
|
||||
const provisionFile = async (
|
||||
managerLockedFile: ManagerLockedFile,
|
||||
{ favoritedByOtherManager = false }: { favoritedByOtherManager?: boolean } = {}
|
||||
): Promise<void> => {
|
||||
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
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
+615
-599
File diff suppressed because it is too large
Load Diff
@@ -238,9 +238,9 @@ export class NodesApi {
|
||||
}
|
||||
}
|
||||
|
||||
async getNodeById(id: string): Promise<NodeEntry> {
|
||||
async getNodeById(id: string, opts?: NodesIncludeQuery): Promise<NodeEntry> {
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user