[ACS-12817] test fixes and updates

This commit is contained in:
Adam Świderski
2026-09-16 14:57:37 +02:00
committed by Adam Świderski
parent cbc91796c0
commit 021d7ff682
5 changed files with 32 additions and 24 deletions
@@ -1,6 +1,7 @@
{
"all": {
"XAT-5019": "locked files and folders shouldn't be able to be deleted",
"XAT-5021": "ocked files and folders shouldn't be able to be deleted"
"XAT-5019": "https://hyland.atlassian.net/browse/ACS-12835",
"XAT-5020": "https://hyland.atlassian.net/browse/ACS-12835",
"XAT-5021": "https://hyland.atlassian.net/browse/ACS-12835"
}
}
@@ -88,7 +88,7 @@ test.describe('Restore from Trash', () => {
await trashPage.snackBar.verifySnackBarActionText(`${nodeName} restored`);
const action = await trashPage.snackBar.getSnackBarActionText();
expect(action).toContain('View');
expect(await trashPage.dataTable.isItemPresent(nodeName)).toBe(false);
await expect(trashPage.dataTable.getRowByName(nodeName)).toBeHidden();
}
test('[XAT-5109] Restore file', async ({ trashPage, personalFiles }) => {
@@ -114,8 +114,8 @@ test.describe('Restore from Trash', () => {
await trashPage.acaHeader.restoreButton.click();
await trashPage.snackBar.verifySnackBarActionText(`Restore successful`);
await trashPage.navigate();
expect(await trashPage.dataTable.isItemPresent(file2)).toBe(false);
expect(await trashPage.dataTable.isItemPresent(folder2)).toBe(false);
await expect(trashPage.dataTable.getRowByName(file2)).toBeHidden();
await expect(trashPage.dataTable.getRowByName(folder2)).toBeHidden();
await personalFiles.navigate();
expect(await personalFiles.dataTable.isItemPresent(file2)).toBe(true);
expect(await personalFiles.dataTable.isItemPresent(folder2)).toBe(true);
@@ -56,7 +56,7 @@ const buildFile = (): ManagerLockedFile => {
test.describe('Special permissions - File locked by other user, user is manager : ', () => {
const random = Utils.random();
const userManager = `manager-locked-other-${random}`;
const userDemoted = `demoted-other-${random}`;
const otherManager = `other-manager-locked-other-${random}`;
const sitePrivate = `site-private-locked-other-${random}`;
const apiClientFactory = new ApiClientFactory();
@@ -64,8 +64,8 @@ test.describe('Special permissions - File locked by other user, user is manager
let managerNodeActions: NodesApi;
let managerFavoritesActions: FavoritesApi;
let managerSearchActions: SearchApi;
let demotedUserActions: NodesApi;
let demotedUserShareActions: SharedLinksApi;
let otherManagerNodeActions: NodesApi;
let otherManagerShareActions: SharedLinksApi;
let docLibId: string;
const provisionFile = async (item: ManagerLockedFile): Promise<void> => {
@@ -74,14 +74,14 @@ test.describe('Special permissions - File locked by other user, user is manager
const managerSearchTotalItems = await managerSearchActions.getTotalItems(userManager);
item.id = (await managerNodeActions.createFile(item.name, docLibId, '', '', '', true, ['cm:versionable'])).entry.id;
await demotedUserActions.checkoutNodes([item.id]);
await demotedUserShareActions.shareFileById(item.id);
await otherManagerNodeActions.checkoutNodes([item.id]);
await otherManagerShareActions.shareFileById(item.id);
await managerFavoritesActions.addFavoriteById('file', item.id);
await managerFavoritesActions.isFavoriteWithRetry(userManager, item.id, { expect: true });
await Promise.all([
managerFavoritesActions.waitForApi(userManager, { expect: managerFavoritesTotalItems + 1 }),
demotedUserShareActions.waitForFilesToBeShared([item.id]),
otherManagerShareActions.waitForFilesToBeShared([item.id]),
managerSearchActions.waitForApi(userManager, { expect: managerSearchTotalItems + 1 })
]);
};
@@ -89,23 +89,23 @@ test.describe('Special permissions - File locked by other user, user is manager
test.beforeAll(async () => {
test.setTimeout(timeouts.extendedTest);
await apiClientFactory.setUpAcaBackend('admin');
await apiClientFactory.createUser({ username: userDemoted });
await apiClientFactory.createUser({ username: otherManager });
await apiClientFactory.createUser({ username: userManager });
managerSiteActions = await SitesApi.initialize(userManager, userManager);
managerNodeActions = await NodesApi.initialize(userManager, userManager);
managerFavoritesActions = await FavoritesApi.initialize(userManager, userManager);
managerSearchActions = await SearchApi.initialize(userManager, userManager);
demotedUserActions = await NodesApi.initialize(userDemoted, userDemoted);
demotedUserShareActions = await SharedLinksApi.initialize(userDemoted, userDemoted);
otherManagerNodeActions = await NodesApi.initialize(otherManager, otherManager);
otherManagerShareActions = await SharedLinksApi.initialize(otherManager, otherManager);
await managerSiteActions.createSite(sitePrivate, Site.VisibilityEnum.PRIVATE);
await managerSiteActions.addSiteMember(sitePrivate, userDemoted, Site.RoleEnum.SiteManager);
await managerSiteActions.addSiteMember(sitePrivate, otherManager, Site.RoleEnum.SiteManager);
docLibId = await managerSiteActions.getDocLibId(sitePrivate);
});
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, userManager, userManager, 'beforeEach failed');
await Utils.tryLoginUser(loginPage, otherManager, otherManager, 'beforeEach failed');
});
test.afterAll(async () => {
@@ -49,7 +49,7 @@ 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 = ['Remove Favorite', 'Copy'];
const viewerLockedFavMore = ['Favorite', 'Copy'];
const viewerNotVersionableMore = ['Favorite', 'Copy'];
interface ConsumerFile {
@@ -75,6 +75,9 @@ test.describe('Repository — Permissions routing', () => {
});
test.beforeEach(async ({ loginPage }) => {
if (typeof admin.username !== 'string' || typeof admin.password !== 'string') {
throw new Error('admin.username or admin.password is undefined');
}
await Utils.tryLoginUser(loginPage, admin.username, admin.password, 'beforeEach (admin) failed');
});
@@ -122,7 +125,7 @@ test.describe('Repository — Permissions routing', () => {
test.describe('signed in as a personal user', () => {
const personalUser = `perm-personal-${Utils.random()}`;
let personalUserNodesApi: NodesApi;
let personalUserPermissionsNodesApi: NodesApi;
let personalUserTrashcanApi: TrashcanApi;
let personalFile: { id: string; name: string };
@@ -138,23 +141,27 @@ test.describe('Repository — Permissions routing', () => {
}
}
personalUserNodesApi = await NodesApi.initialize(personalUser, personalUser);
personalUserPermissionsNodesApi = await NodesApi.initialize(personalUser, personalUser);
personalUserTrashcanApi = await TrashcanApi.initialize(personalUser, personalUser);
const personalFileName = `personal-file-${Utils.random()}.txt`;
const created = (await personalUserNodesApi.createFile(personalFileName)).entry;
const personalFileName = `personal-file-repository-${Utils.random()}.txt`;
const created = (await personalUserPermissionsNodesApi.createFile(personalFileName)).entry;
personalFile = { id: created.id, name: personalFileName };
} catch (error) {
console.error(`beforeAll (personal user) failed: ${error}`);
console.error(`repository-permissions - beforeAll (personal user) failed: ${error}`);
throw error;
}
});
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, personalUser, personalUser, 'beforeEach (personal user) failed');
await Utils.tryLoginUser(loginPage, personalUser, personalUser, 'repository-permissions - beforeEach (personal user) failed');
});
test.afterAll(async () => {
await Utils.deleteNodesSitesEmptyTrashcan(personalUserNodesApi, personalUserTrashcanApi, 'afterAll (personal user) failed');
await Utils.deleteNodesSitesEmptyTrashcan(
personalUserPermissionsNodesApi,
personalUserTrashcanApi,
'repository-permissions - afterAll (personal user) failed'
);
});
test('[XAT-19611] Permissions for a Personal File still routes to /personal-files (regression)', async ({ personalFiles }) => {