mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
[ACS-12333][ACS-12335][ACS-12334] Add Checkout / Check-in Support (#5360)
Co-authored-by: Adam Świderski <adam.tomasz.swiderski@gmail.com>
This commit is contained in:
co-authored by
Adam Świderski
parent
ff7560b7fc
commit
c4f3e988c8
@@ -1,6 +1,17 @@
|
||||
{
|
||||
"all": {
|
||||
"XAT-4845": "https://hyland.atlassian.net/browse/ACS-12214",
|
||||
"XAT-4835": "https://hyland.atlassian.net/browse/ACS-12214"
|
||||
"XAT-4835": "https://hyland.atlassian.net/browse/ACS-12214",
|
||||
"XAT-4843": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4859": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4860": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4846": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4861": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4862": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4863": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4864": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4865": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4866": "https://hyland.atlassian.net/browse/ACS-12752",
|
||||
"XAT-4867": "https://hyland.atlassian.net/browse/ACS-12752"
|
||||
}
|
||||
}
|
||||
|
||||
+20
-20
@@ -156,9 +156,9 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
|
||||
await checkActionsAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.fileLockedByUserWorkingCopyName,
|
||||
testData.collaboratorWorkingCopyToolbarPrimary,
|
||||
testData.collaboratorLockWorkingCopyToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -167,8 +167,8 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await checkActionsAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.collaboratorLockedToolbarPrimary,
|
||||
testData.collaboratorLockedSharedViewerToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -177,18 +177,18 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await checkActionsAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorToolbarPrimary,
|
||||
testData.favoritesCollaboratorToolbarMore
|
||||
testData.collaboratorLockedToolbarPrimary,
|
||||
testData.favoritesCheckedOutCollaboratorToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
test('[XAT-4855] Toolbar - Correct actions appear for file - on Search Results - Locked File', async ({ searchPage, myLibrariesPage }) => {
|
||||
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
|
||||
await searchPage.searchWithin(testData.fileLockedByUserWorkingCopyName, 'filesAndFolders');
|
||||
await checkActionsAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.fileLockedByUserWorkingCopyName,
|
||||
testData.collaboratorWorkingCopyToolbarPrimary,
|
||||
testData.lockedWorkingCopyToolbarMore
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -199,9 +199,9 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
|
||||
await checkActionsViewerAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorSharedToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.fileLockedByUserWorkingCopyName,
|
||||
testData.collaboratorSharedWorkingCopyToolbarPrimary,
|
||||
testData.collaboratorLockWorkingCopyToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -210,8 +210,8 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await checkActionsViewerAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorSharedToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.collaboratorLockedOriginalSharedViewerToolbarPrimary,
|
||||
testData.collaboratorLockedSharedViewerToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -220,16 +220,16 @@ export function filesLockedByCurrentUser(userDemoted: string, siteName?: string)
|
||||
await checkActionsViewerAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.collaboratorSharedToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
testData.collaboratorLockedOriginalSharedViewerToolbarPrimary,
|
||||
testData.collaboratorLockedSharedViewerToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
test('[XAT-4859] Correct actions appear for file opened from Search Results - Locked File', async ({ searchPage, myLibrariesPage }) => {
|
||||
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
|
||||
await searchPage.searchWithin(testData.fileLockedByUserWorkingCopyName, 'filesAndFolders');
|
||||
await checkActionsViewerAvailable(
|
||||
myLibrariesPage,
|
||||
testData.fileLockedByUser,
|
||||
testData.fileLockedByUserWorkingCopyName,
|
||||
testData.collaboratorSharedToolbarPrimary,
|
||||
testData.collaboratorLockCurrentUserToolbarMore
|
||||
);
|
||||
|
||||
+9
-4
@@ -68,7 +68,6 @@ test.describe('Special permissions : ', () => {
|
||||
let folderFav2Id: string;
|
||||
|
||||
let managerNodeActions: NodesApi;
|
||||
let demotedUserActions: NodesApi;
|
||||
let consumerFavoritesActions: FavoritesPageApi;
|
||||
let managerFavoritesActions: FavoritesPageApi;
|
||||
let collaboratorFavoritesActions: FavoritesPageApi;
|
||||
@@ -78,6 +77,7 @@ test.describe('Special permissions : ', () => {
|
||||
let consumerShareActions: SharedLinksApi;
|
||||
let managerSiteActions: SitesApi;
|
||||
let managerFileActions: FileActionsApi;
|
||||
let demotedUserFileActions: FileActionsApi;
|
||||
let managerSearchActions: SearchApi;
|
||||
|
||||
test.beforeAll(async () => {
|
||||
@@ -89,7 +89,6 @@ test.describe('Special permissions : ', () => {
|
||||
await apiClientFactory.createUser({ username: userDemoted });
|
||||
|
||||
managerNodeActions = await NodesApi.initialize(userManager, userManager);
|
||||
demotedUserActions = await NodesApi.initialize(userDemoted, userDemoted);
|
||||
consumerFavoritesActions = await FavoritesPageApi.initialize(userConsumer, userConsumer);
|
||||
collaboratorFavoritesActions = await FavoritesPageApi.initialize(userCollaborator, userCollaborator);
|
||||
demotedUserFavoritesActions = await FavoritesPageApi.initialize(userDemoted, userDemoted);
|
||||
@@ -97,6 +96,7 @@ test.describe('Special permissions : ', () => {
|
||||
managerSearchActions = await SearchApi.initialize(userManager, userManager);
|
||||
managerSiteActions = await SitesApi.initialize(userManager, userManager);
|
||||
managerFileActions = await FileActionsApi.initialize(userManager, userManager);
|
||||
demotedUserFileActions = await FileActionsApi.initialize(userDemoted, userDemoted);
|
||||
managerUserShareActions = await SharedLinksApi.initialize(userManager, userManager);
|
||||
demotedUserShareActions = await SharedLinksApi.initialize(userDemoted, userDemoted);
|
||||
consumerShareActions = await SharedLinksApi.initialize(userConsumer, userConsumer);
|
||||
@@ -132,7 +132,7 @@ test.describe('Special permissions : ', () => {
|
||||
.entry.id;
|
||||
|
||||
fileLockedByUserId = (await managerNodeActions.createFile(testData.fileLockedByUser, docLibId, '', '', '', true, ['cm:versionable'])).entry.id;
|
||||
await demotedUserActions.lockNodes([fileLockedByUserId]);
|
||||
await demotedUserFileActions.checkoutNode(fileLockedByUserId);
|
||||
await demotedUserFavoritesActions.addFavoriteById('file', fileLockedByUserId);
|
||||
await demotedUserShareActions.shareFileById(fileLockedByUserId);
|
||||
await managerSiteActions.updateSiteMember(sitePrivate, userDemoted, Site.RoleEnum.SiteConsumer);
|
||||
@@ -164,7 +164,12 @@ test.describe('Special permissions : ', () => {
|
||||
fileGranularPermissionId
|
||||
]);
|
||||
|
||||
await managerNodeActions.lockNodes([fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId]);
|
||||
await Promise.all([
|
||||
managerFileActions.checkoutNode(fileLockedId),
|
||||
managerFileActions.checkoutNode(fileFavLockedId),
|
||||
managerFileActions.checkoutNode(fileSharedLockedId),
|
||||
managerFileActions.checkoutNode(fileSharedFavLockedId)
|
||||
]);
|
||||
|
||||
await managerNodeActions.setGranularPermission(fileGranularPermissionId, userConsumer, Site.RoleEnum.SiteManager, false);
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
myLibrariesPage,
|
||||
testData.fileLocked.name,
|
||||
testData.fileLocked.workingCopyName,
|
||||
testData.fileLocked.viewerToolbarPrimary,
|
||||
testData.fileLocked.viewerToolbarMore
|
||||
);
|
||||
@@ -147,9 +147,9 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
myLibrariesPage,
|
||||
testData.fileFavLocked.name,
|
||||
testData.fileFavLocked.workingCopyName,
|
||||
testData.fileFavLocked.viewerToolbarPrimary,
|
||||
testData.fileFavLocked.viewerToolbarMore
|
||||
testData.fileFavLocked.workingCopyViewerToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -157,7 +157,7 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
myLibrariesPage,
|
||||
testData.fileSharedLocked.name,
|
||||
testData.fileSharedLocked.workingCopyName,
|
||||
testData.fileSharedLocked.viewerToolbarPrimary,
|
||||
testData.fileSharedLocked.viewerToolbarMore
|
||||
);
|
||||
@@ -167,9 +167,9 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
myLibrariesPage,
|
||||
testData.fileSharedFavLocked.name,
|
||||
testData.fileSharedFavLocked.workingCopyName,
|
||||
testData.fileSharedFavLocked.viewerToolbarPrimary,
|
||||
testData.fileSharedFavLocked.viewerToolbarMore
|
||||
testData.fileSharedFavLocked.workingCopyViewerToolbarMore
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -443,7 +443,7 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
searchPage,
|
||||
testData.fileLocked.name,
|
||||
testData.fileLocked.workingCopyName,
|
||||
testData.fileLocked.viewerToolbarPrimary,
|
||||
testData.fileLocked.viewerToolbarMore
|
||||
);
|
||||
@@ -453,9 +453,9 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
searchPage,
|
||||
testData.fileFavLocked.name,
|
||||
testData.fileFavLocked.workingCopyName,
|
||||
testData.fileFavLocked.viewerToolbarPrimary,
|
||||
testData.fileFavLocked.viewerToolbarMore
|
||||
testData.fileFavLocked.workingCopyViewerToolbarMore
|
||||
);
|
||||
});
|
||||
|
||||
@@ -463,7 +463,7 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
searchPage,
|
||||
testData.fileSharedLocked.name,
|
||||
testData.fileSharedLocked.workingCopyName,
|
||||
testData.fileSharedLocked.viewerToolbarPrimary,
|
||||
testData.fileSharedLocked.viewerToolbarMore
|
||||
);
|
||||
@@ -473,7 +473,7 @@ export function viewerTests(userConsumer: string, siteName: string) {
|
||||
await checkViewerActions(
|
||||
loginPage,
|
||||
searchPage,
|
||||
testData.fileSharedFavLocked.name,
|
||||
testData.fileSharedFavLocked.workingCopyName,
|
||||
testData.fileSharedFavLocked.viewerToolbarPrimary,
|
||||
testData.fileSharedFavLocked.viewerToolbarMore
|
||||
);
|
||||
|
||||
@@ -224,9 +224,8 @@ test.describe('viewer action file', () => {
|
||||
test('[XAT-5423] Viewer - Edit Offline action - Personal Files', async ({ personalFiles }) => {
|
||||
await openFileInViewer(personalFiles, fileForEditOffline);
|
||||
await personalFiles.viewer.toolbar.clickMoreActions();
|
||||
await personalFiles.matMenu.clickMenuItem('Edit Offline');
|
||||
const downloadPromise = personalFiles.page.waitForEvent('download');
|
||||
await personalFiles.viewer.toolbar.downloadButton.click();
|
||||
await personalFiles.matMenu.clickMenuItem('Edit Offline');
|
||||
const download = await downloadPromise;
|
||||
expect(download.suggestedFilename(), 'File should found in download location').toBe(fileForEditOffline);
|
||||
expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is closed after pressing Full screen').toBe(true);
|
||||
@@ -239,6 +238,7 @@ test.describe('viewer action file', () => {
|
||||
const username = `user-${Utils.random()}`;
|
||||
const fileForCancelEditing = `playwright-file2-${Utils.random()}.docx`;
|
||||
let folderIdCancelEdit: string;
|
||||
let workingCopyName: string;
|
||||
let nodesApi: NodesApi;
|
||||
let trashcanApi: TrashcanApi;
|
||||
|
||||
@@ -251,8 +251,9 @@ test.describe('viewer action file', () => {
|
||||
const { fileActionsApi } = apis;
|
||||
folderIdCancelEdit = (await nodesApi.createFolder(`viewer-action-5424-${Utils.random()}`)).entry.id;
|
||||
const fileForCancelEditingId = (await fileActionsApi.uploadFile(TEST_FILES.DOCX.path, fileForCancelEditing, folderIdCancelEdit)).entry.id;
|
||||
await fileActionsApi.lockNodes([fileForCancelEditingId]);
|
||||
await fileActionsApi.isFileLockedWriteWithRetry(fileForCancelEditingId, true);
|
||||
const workingCopy = await fileActionsApi.checkoutNode(fileForCancelEditingId);
|
||||
workingCopyName = workingCopy.entry.name;
|
||||
await fileActionsApi.isFileCheckedOutWithRetry(fileForCancelEditingId, true);
|
||||
} catch (error) {
|
||||
console.error(`beforeAll failed: ${error}`);
|
||||
throw error;
|
||||
@@ -269,9 +270,10 @@ test.describe('viewer action file', () => {
|
||||
});
|
||||
|
||||
test('[XAT-5424] Viewer - Cancel Editing action - Personal Files', async ({ personalFiles }) => {
|
||||
await openFileInViewer(personalFiles, fileForCancelEditing);
|
||||
await openFileInViewer(personalFiles, workingCopyName);
|
||||
await personalFiles.viewer.toolbar.clickMoreActions();
|
||||
await personalFiles.matMenu.clickMenuItem('Cancel Editing');
|
||||
await personalFiles.viewer.waitForViewerToOpen();
|
||||
await personalFiles.viewer.toolbar.clickMoreActions();
|
||||
expect(await personalFiles.matMenu.isMenuItemVisible('Edit Offline'), 'Edit offline menu should be visible').toBe(true);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user