Build(deps-dev): Bump @playwright/test from 1.37.1 to 1.42.1 (#3682)

* Build(deps-dev): Bump @playwright/test from 1.37.1 to 1.42.1

Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.37.1 to 1.42.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.37.1...v1.42.1)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Playwright 1.42.1 upstream - fixed info-drawer tests

* Playwright 1.42.1 upstream - fixed copy-move-actions tests

* @datguychen
Playwright 1.42.1 upstream - fixed library-actions tests

* Playwright 1.42.1 upstream - SonarCloud fix 1

* Playwright 1.42.1 upstream - review fix 1

* Playwright 1.42.1 upstream - review fix 2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: datguychen <adam.swiderski@hyland.com>
This commit is contained in:
dependabot[bot]
2024-03-21 11:26:52 +01:00
committed by GitHub
parent 5adaf35e79
commit 76f83da505
14 changed files with 147 additions and 79 deletions

View File

@@ -88,6 +88,7 @@ test.describe('Copy actions', () => {
};
test('[C217135] Copy a file', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await copyContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -96,6 +97,7 @@ test.describe('Copy actions', () => {
});
test('[C291888] Copy a folder with content', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -107,11 +109,13 @@ test.describe('Copy actions', () => {
});
test('[C291889] Copy multiple items', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder, sourceFile], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
await personalFiles.spinner.waitForReload();
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
expect(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
});
@@ -119,6 +123,7 @@ test.describe('Copy actions', () => {
test('[C217137] Copy a file with a name that already exists on the destination', async ({ personalFiles }) => {
await nodesApi.createFile(sourceFile, destinationFolderId);
const expectedNameForCopiedFile = sourceFile.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await copyContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -131,6 +136,7 @@ test.describe('Copy actions', () => {
const existingFolderId = (await nodesApi.createFolder(sourceFolder, destinationFolderId)).entry.id;
await nodesApi.createFile(sourceFileInsideFolder, existingFolderId);
const expectedNameForCopiedFile = sourceFileInsideFolder.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -145,6 +151,7 @@ test.describe('Copy actions', () => {
test('[C217139] Copy locked file', async ({ personalFiles }) => {
const lockType = 'ALLOW_OWNER_CHANGES';
await nodesApi.lockNodes([sourceFileId], lockType);
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await copyContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -155,6 +162,7 @@ test.describe('Copy actions', () => {
test('[C217140] Copy folder that contains locked file', async ({ personalFiles }) => {
const lockType = 'ALLOW_OWNER_CHANGES';
await nodesApi.lockNodes([sourceFileInsideFolderId], lockType);
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
@@ -166,6 +174,7 @@ test.describe('Copy actions', () => {
});
test('[C217171] Undo copy of files', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await copyContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
await personalFiles.snackBar.actionButton.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
@@ -175,6 +184,7 @@ test.describe('Copy actions', () => {
});
test('[C217172] Undo copy of folders', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
await personalFiles.snackBar.actionButton.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
@@ -186,6 +196,7 @@ test.describe('Copy actions', () => {
test('[C217173] Undo copy of a file when a file with same name already exists on the destination', async ({ personalFiles }) => {
await nodesApi.createFile(sourceFile, destinationFolderId);
const expectedNameForCopiedFile = sourceFile.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await copyContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
await personalFiles.snackBar.actionButton.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
@@ -199,6 +210,7 @@ test.describe('Copy actions', () => {
const existingFolderId = (await nodesApi.createFolder(sourceFolder, destinationFolderId)).entry.id;
await nodesApi.createFile(sourceFileInsideFolder, existingFolderId);
const expectedNameForCopiedFile = sourceFileInsideFolder.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await copyContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
await personalFiles.snackBar.actionButton.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();

View File

@@ -22,21 +22,26 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { ApiClientFactory, test, Utils, PersonalFilesPage, NodesApi, LoginPage } from '@alfresco/playwright-shared';
import { ApiClientFactory, test, Utils, PersonalFilesPage, NodesApi, LoginPage, TrashcanApi } from '@alfresco/playwright-shared';
import { expect } from '@playwright/test';
test.describe('Move actions', () => {
let nodesApi: NodesApi;
let trashcanApi: TrashcanApi;
const username = `user-${Utils.random()}`;
let sourceFileId: string;
let sourceFileInsideFolderId: string;
let destinationFolderId: string;
let sourceFile: string;
let sourceFileInsideFolder: string;
let sourceFolder: string;
let destinationFolder: string;
let sourceFileId: string;
let sourceFileInsideFolderId: string;
let destinationFolderId: string;
test.afterAll(async ({ nodesApiAction }) => {
await Utils.deleteNodesSitesEmptyTrashcan(nodesApiAction, trashcanApi, 'afterAll failed');
});
test.beforeAll(async () => {
try {
@@ -47,12 +52,6 @@ test.describe('Move actions', () => {
} catch {}
});
test.afterAll(async ({ nodesApiAction }) => {
try {
await nodesApiAction.deleteCurrentUserNodes();
} catch {}
});
test.beforeEach(async ({ personalFiles, page }) => {
sourceFile = `source-file-${Utils.random()}.txt`;
sourceFileInsideFolder = `source-file-inside-folder-${Utils.random()}.txt`;
@@ -60,21 +59,13 @@ test.describe('Move actions', () => {
destinationFolder = `destination-folder-${Utils.random()}`;
const loginPage = new LoginPage(page);
try {
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
destinationFolderId = (await nodesApi.createFolder(destinationFolder)).entry.id;
const sourceFolderId = (await nodesApi.createFolder(sourceFolder)).entry.id;
sourceFileInsideFolderId = (await nodesApi.createFile(sourceFileInsideFolder, sourceFolderId)).entry.id;
sourceFileId = (await nodesApi.createFile(sourceFile)).entry.id;
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
destinationFolderId = (await nodesApi.createFolder(destinationFolder)).entry.id;
const sourceFolderId = (await nodesApi.createFolder(sourceFolder)).entry.id;
sourceFileInsideFolderId = (await nodesApi.createFile(sourceFileInsideFolder, sourceFolderId)).entry.id;
sourceFileId = (await nodesApi.createFile(sourceFile)).entry.id;
await personalFiles.navigate();
} catch {}
await personalFiles.navigate();
});
const moveContentInPersonalFiles = async (personalFilesPage: PersonalFilesPage, sourceFileList: string[], destinationName: string) => {
@@ -83,6 +74,7 @@ test.describe('Move actions', () => {
};
test('[C217316] Move a file', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await moveContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 1 item.');
@@ -92,19 +84,8 @@ test.describe('Move actions', () => {
expect(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
});
test('[C217317] Move a folder with content', async ({ personalFiles }) => {
await moveContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 1 item.');
await personalFiles.snackBar.closeIcon.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeFalsy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(sourceFolder);
expect(await personalFiles.dataTable.isItemPresent(sourceFileInsideFolder)).toBeTruthy();
});
test('[C291958] Move multiple items', async ({ personalFiles }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await moveContentInPersonalFiles(personalFiles, [sourceFolder, sourceFile], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 2 items.');
@@ -119,6 +100,7 @@ test.describe('Move actions', () => {
test('[C217318] Move a file with a name that already exists on the destination', async ({ personalFiles }) => {
await nodesApi.createFile(sourceFile, destinationFolderId);
const expectedNameForCopiedFile = sourceFile.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await moveContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Move unsuccessful, a file with the same name already exists.');
@@ -133,6 +115,7 @@ test.describe('Move actions', () => {
const existingFolderId = (await nodesApi.createFolder(sourceFolder, destinationFolderId)).entry.id;
await nodesApi.createFile(sourceFileInsideFolder, existingFolderId);
const expectedNameForCopiedFile = sourceFileInsideFolder.replace('.', '-1.');
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await moveContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Move unsuccessful, a file with the same name already exists.');
@@ -148,6 +131,7 @@ test.describe('Move actions', () => {
test('[C217320] Move locked file', async ({ personalFiles }) => {
const lockType = 'ALLOW_OWNER_CHANGES';
await nodesApi.lockNodes([sourceFileId], lockType);
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await moveContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 1 item.');
@@ -157,21 +141,8 @@ test.describe('Move actions', () => {
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFile)).toBeTruthy();
});
test('[C217321] Move folder that contains locked file', async ({ personalFiles }) => {
const lockType = 'ALLOW_OWNER_CHANGES';
await nodesApi.lockNodes([sourceFileInsideFolderId], lockType);
await moveContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 1 item.');
await personalFiles.snackBar.closeIcon.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeFalsy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(sourceFolder);
expect(await personalFiles.dataTable.isItemPresent(sourceFileInsideFolder)).toBeTruthy();
});
test('[C217324] Undo move files', async ({ personalFiles, trashPage }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFile);
await moveContentInPersonalFiles(personalFiles, [sourceFile], destinationFolder);
await personalFiles.snackBar.actionButton.click();
await personalFiles.spinner.waitForReload();
@@ -183,6 +154,7 @@ test.describe('Move actions', () => {
});
test('[C217325] Undo move of folders', async ({ personalFiles, trashPage }) => {
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await moveContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
await personalFiles.snackBar.actionButton.click();
await personalFiles.spinner.waitForReload();
@@ -192,4 +164,38 @@ test.describe('Move actions', () => {
await trashPage.navigate();
expect(await trashPage.dataTable.isItemPresent(sourceFolder)).toBeFalsy();
});
async function moveFolderWithContent(personalFiles: PersonalFilesPage, lockedFile: boolean) {
if (lockedFile) {
const lockType = 'ALLOW_OWNER_CHANGES';
await nodesApi.lockNodes([sourceFileInsideFolderId], lockType);
}
await Utils.reloadPageIfRowNotVisible(personalFiles, sourceFolder);
await moveContentInPersonalFiles(personalFiles, [sourceFolder], destinationFolder);
const msg = await personalFiles.snackBar.message.innerText();
expect.soft(msg).toContain('Moved 1 item.');
await personalFiles.snackBar.closeIcon.click();
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeFalsy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(destinationFolder);
expect.soft(await personalFiles.dataTable.isItemPresent(sourceFolder)).toBeTruthy();
await personalFiles.dataTable.performClickFolderOrFileToOpen(sourceFolder);
expect(await personalFiles.dataTable.isItemPresent(sourceFileInsideFolder)).toBeTruthy();
}
[
{
id: 'C217317',
testTitle: `Move a folder with content`,
lockedFile: false
},
{
id: 'C217321',
testTitle: 'Move folder that contains locked file',
lockedFile: true
}
].forEach((testCase) => {
test(`[${testCase.id}] ${testCase.testTitle}`, async ({ personalFiles }) => {
await moveFolderWithContent(personalFiles, testCase.lockedFile);
});
});
});