[ACS-7298] beforeEach and afterAll updated for list-views (#3734)

* [ACS-7298] beforeEach and afterAll updated for list-views

* [ACS-7298] 'only' deleted
This commit is contained in:
Adam Świderski
2024-03-27 10:18:08 +01:00
committed by GitHub
parent 2046630f58
commit d6e6c41a2e
10 changed files with 64 additions and 127 deletions

View File

@@ -23,11 +23,12 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, LoginPage, NodesApi, Utils, test, SitesApi, FavoritesPageApi, timeouts } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, Utils, test, SitesApi, FavoritesPageApi, timeouts, TrashcanApi } from '@alfresco/playwright-shared';
import { Site } from '@alfresco/js-api';
test.describe('Favorites Files', () => {
let nodesApi: NodesApi;
let trashcanApi: TrashcanApi;
let siteActionsAdmin: SitesApi;
const username = `user-${Utils.random()}`;
const siteName = `site-${Utils.random()}`;
@@ -45,6 +46,7 @@ test.describe('Favorites Files', () => {
await apiClientFactory.setUpAcaBackend('admin');
await apiClientFactory.createUser({ username });
nodesApi = await NodesApi.initialize(username, username);
trashcanApi = await TrashcanApi.initialize(username, username);
const nodesApiAdmin = await NodesApi.initialize('admin');
siteActionsAdmin = await SitesApi.initialize('admin');
const favoritesActions = await FavoritesPageApi.initialize(username, username);
@@ -75,20 +77,12 @@ test.describe('Favorites Files', () => {
}
});
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
});
test.afterAll(async () => {
await nodesApi.deleteCurrentUserNodes();
await siteActionsAdmin.deleteSites([siteName]);
await Utils.deleteNodesSitesEmptyTrashcan(nodesApi, trashcanApi, 'afterAll failed', siteActionsAdmin, [siteName]);
});
test.describe(`Regular user's Favorites files`, () => {

View File

@@ -23,7 +23,7 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, FavoritesPageApi, LoginPage, SitesApi, Utils, test, timeouts } from '@alfresco/playwright-shared';
import { ApiClientFactory, FavoritesPageApi, SitesApi, Utils, test, timeouts } from '@alfresco/playwright-shared';
import { Site } from '@alfresco/js-api';
test.describe('File Libraries', () => {
@@ -88,15 +88,8 @@ test.describe('File Libraries', () => {
});
test.describe('My Libraries', () => {
test.beforeEach(async ({ page, myLibrariesPage }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage, myLibrariesPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
await myLibrariesPage.navigate();
});
@@ -142,15 +135,8 @@ test.describe('File Libraries', () => {
});
test.describe('Favorite Libraries', () => {
test.beforeEach(async ({ page, favoritesLibrariesPage }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage, favoritesLibrariesPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
await favoritesLibrariesPage.navigate();
});

View File

@@ -23,7 +23,7 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, LoginPage, NodesApi, TrashcanApi, Utils, test } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, TrashcanApi, Utils, test } from '@alfresco/playwright-shared';
test.describe('Generic errors', () => {
const username = `user-${Utils.random()}`;
@@ -52,15 +52,8 @@ test.describe('Generic errors', () => {
}
});
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
});
test.afterAll(async () => {

View File

@@ -74,15 +74,8 @@ test.describe('Special permissions', () => {
await shareApiUser.waitForFilesToBeShared([fileId]);
});
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
});
test.afterEach(async () => {

View File

@@ -23,10 +23,11 @@
*/
import { expect } from '@playwright/test';
import { APP_ROUTES, ApiClientFactory, LoginPage, NodesApi, SIDEBAR_LABELS, Utils, test } from '@alfresco/playwright-shared';
import { APP_ROUTES, ApiClientFactory, NodesApi, SIDEBAR_LABELS, Utils, test, TrashcanApi } from '@alfresco/playwright-shared';
test.describe('Personal Files', () => {
let nodesApi: NodesApi;
let trashcanApi: TrashcanApi;
const username = `user-${Utils.random()}`;
const userFolder = `user-folder-${Utils.random()}`;
@@ -36,6 +37,7 @@ test.describe('Personal Files', () => {
await apiClientFactory.setUpAcaBackend('admin');
await apiClientFactory.createUser({ username });
nodesApi = await NodesApi.initialize(username, username);
trashcanApi = await TrashcanApi.initialize(username, username);
await nodesApi.createFolder(userFolder);
} catch (error) {
console.error(`beforeAll failed : ${error}`);
@@ -43,19 +45,12 @@ test.describe('Personal Files', () => {
});
test.afterAll(async () => {
await nodesApi.deleteCurrentUserNodes();
await Utils.deleteNodesSitesEmptyTrashcan(nodesApi, trashcanApi, 'afterAll failed');
});
test.describe(`Regular user's personal files`, () => {
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
});
test('[C217142] has the correct columns', async ({ personalFiles }) => {
@@ -65,6 +60,7 @@ test.describe('Personal Files', () => {
});
test('[C217143] has default sorted column', async ({ personalFiles }) => {
await Utils.reloadPageIfDatatableEmpty(personalFiles);
expect(await personalFiles.dataTable.getSortedColumnHeaderText()).toBe('Name');
});

View File

@@ -23,19 +23,18 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, LoginPage, NodesApi, SearchPageApi, SitesApi, TrashcanApi, Utils, test, timeouts } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, SearchPageApi, SitesApi, TrashcanApi, Utils, test, timeouts } from '@alfresco/playwright-shared';
import { Site } from '@alfresco/js-api';
test.describe('Recent Files', () => {
let nodeActionsUser: NodesApi;
let siteActionsUser: SitesApi;
let trashcanApi: TrashcanApi;
const username = `user-${Utils.random()}`;
const folderName = `folder-${Utils.random()}`;
let folderId: string;
const fileName1 = `file-${Utils.random()}.txt`;
const fileName2 = `file-${Utils.random()}.txt`;
let file2Id: string;
const fileName3 = `file-${Utils.random()}.txt`;
const siteName = `site-${Utils.random()}`;
@@ -49,10 +48,11 @@ test.describe('Recent Files', () => {
await apiClientFactory.createUser({ username });
nodeActionsUser = await NodesApi.initialize(username, username);
siteActionsUser = await SitesApi.initialize(username, username);
trashcanApi = await TrashcanApi.initialize(username, username);
folderId = (await nodeActionsUser.createFolder(folderName)).entry.id;
await nodeActionsUser.createFolder(folderName);
await nodeActionsUser.createFiles([fileName1], folderName);
file2Id = (await nodeActionsUser.createFile(fileName2)).entry.id;
await nodeActionsUser.createFile(fileName2);
const id = (await nodeActionsUser.createFile(fileName3)).entry.id;
await nodeActionsUser.deleteNodes([id], false);
@@ -66,23 +66,13 @@ test.describe('Recent Files', () => {
await searchApi.waitForApi(username, { expect: 3 });
});
test.beforeEach(async ({ page, recentFilesPage }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage, recentFilesPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
await recentFilesPage.navigate();
});
test.afterAll(async () => {
await nodeActionsUser.deleteNodes([folderId, file2Id]);
await siteActionsUser.deleteSites([siteName]);
const trashcanApi = await TrashcanApi.initialize(username, username);
await trashcanApi.emptyTrashcan();
await Utils.deleteNodesSitesEmptyTrashcan(nodeActionsUser, trashcanApi, 'afterAll failed', siteActionsUser, [siteName]);
});
test('[C213168] has the correct columns', async ({ recentFilesPage }) => {

View File

@@ -23,12 +23,13 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, LoginPage, NodesApi, Utils, test, SitesApi, timeouts, SharedLinksApi } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, Utils, test, SitesApi, timeouts, SharedLinksApi, TrashcanApi } from '@alfresco/playwright-shared';
import { Site } from '@alfresco/js-api';
test.describe('Shared Files', () => {
let nodesApi: NodesApi;
let siteActionsAdmin: SitesApi;
let trashcanApi: TrashcanApi;
const username = `user-${Utils.random()}`;
const siteName = `site-${Utils.random()}`;
@@ -48,6 +49,7 @@ test.describe('Shared Files', () => {
const nodesApiAdmin = await NodesApi.initialize('admin');
const shareActionsAdmin = await SharedLinksApi.initialize('admin');
nodesApi = await NodesApi.initialize(username, username);
trashcanApi = await TrashcanApi.initialize(username, username);
const shareActions = await SharedLinksApi.initialize(username, username);
await siteActionsAdmin.createSite(siteName, Site.VisibilityEnum.PUBLIC);
@@ -73,21 +75,13 @@ test.describe('Shared Files', () => {
await shareActions.waitForFilesToNotBeShared([file2Id, file3Id]);
});
test.beforeEach(async ({ page, sharedPage }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage, sharedPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
await sharedPage.navigate();
});
test.afterAll(async () => {
await siteActionsAdmin.deleteSites([siteName]);
await nodesApi.deleteCurrentUserNodes();
await Utils.deleteNodesSitesEmptyTrashcan(nodesApi, trashcanApi, 'afterAll failed', siteActionsAdmin, [siteName]);
});
test('[C213113] has the correct columns', async ({ sharedPage }) => {

View File

@@ -23,19 +23,21 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, NodesApi, Utils, getUserState, test, LoginPage, users } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, Utils, getUserState, test, TrashcanApi, users } from '@alfresco/playwright-shared';
test.use({ storageState: getUserState('admin') });
test.describe('Trash admin', () => {
const folderAdmin = `deleteFolder-${Utils.random()}`;
let folderAdminId: string;
let adminApiActions: NodesApi;
let adminTrashcanApi: TrashcanApi;
test.beforeAll(async () => {
try {
const apiClientFactory = new ApiClientFactory();
await apiClientFactory.setUpAcaBackend('admin');
adminApiActions = await NodesApi.initialize('admin');
adminTrashcanApi = await TrashcanApi.initialize('admin');
folderAdminId = (await adminApiActions.createFolder(folderAdmin)).entry.id;
await adminApiActions.deleteNodeById(folderAdminId, false);
} catch (error) {
@@ -44,22 +46,11 @@ test.describe('Trash admin', () => {
});
test.afterAll(async () => {
try {
await adminApiActions.deleteDeletedNode(folderAdminId);
} catch (error) {
console.error(`----- afterAll failed : ${error}`);
}
await Utils.deleteNodesSitesEmptyTrashcan(adminApiActions, adminTrashcanApi, '----- afterAll failed : ');
});
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username: users.admin.username, password: users.admin.password },
{
withNavigation: true,
waitForLoading: true
}
);
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, users.admin.username, users.admin.password, 'beforeEach failed');
});
test.describe('as admin', () => {

View File

@@ -23,12 +23,13 @@
*/
import { expect } from '@playwright/test';
import { ApiClientFactory, LoginPage, NodesApi, SitesApi, Utils, test } from '@alfresco/playwright-shared';
import { ApiClientFactory, NodesApi, SitesApi, Utils, test, TrashcanApi } from '@alfresco/playwright-shared';
import { Site } from '@alfresco/js-api';
test.describe('Trash', () => {
let nodesApi: NodesApi;
let siteActionsAdmin: SitesApi;
let trashcanApi: TrashcanApi;
const username = `user-${Utils.random()}`;
const siteName = `site-${Utils.random()}`;
@@ -45,6 +46,7 @@ test.describe('Trash', () => {
await apiClientFactory.createUser({ username });
siteActionsAdmin = await SitesApi.initialize('admin');
nodesApi = await NodesApi.initialize(username, username);
trashcanApi = await TrashcanApi.initialize(username, username);
const nodesApiAdmin = await NodesApi.initialize('admin');
const folderDeleted = `folder-${Utils.random()}`;
@@ -66,27 +68,12 @@ test.describe('Trash', () => {
});
test.afterAll(async () => {
try {
await nodesApi.deleteCurrentUserNodes();
await siteActionsAdmin.deleteSites([siteName]);
} catch (error) {
console.error(`Main afterAll failed: ${error}`);
}
await Utils.deleteNodesSitesEmptyTrashcan(nodesApi, trashcanApi, 'Main afterAll failed: ', siteActionsAdmin, [siteName]);
});
test.describe(`Regular user's personal files`, () => {
test.beforeEach(async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.loginUser(
{ username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
});
test.beforeEach(async ({ trashPage }) => {
test.beforeEach(async ({ loginPage, trashPage }) => {
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
await trashPage.navigate();
});

View File

@@ -24,7 +24,7 @@
const crypto = require('crypto');
import * as path from 'path';
import { LoginPage, MyLibrariesPage, PersonalFilesPage, FavoritesLibrariesPage, SearchPage, SharedPage } from '../';
import { LoginPage, MyLibrariesPage, PersonalFilesPage, FavoritesLibrariesPage, SearchPage, SharedPage, TrashPage } from '../';
import { NodesApi, TrashcanApi, SitesApi } from '@alfresco/playwright-shared';
export class Utils {
@@ -102,7 +102,7 @@ export class Utils {
static async reloadPageIfRowNotVisible(
pageContext: PersonalFilesPage | MyLibrariesPage | FavoritesLibrariesPage | SearchPage | SharedPage,
nodeName: string,
errorMessage = 'Error '
errorMessage = 'reloadPageIfRowNotVisible Error '
): Promise<void> {
try {
if (!await pageContext.dataTable.getRowByName(nodeName).isVisible()) {
@@ -112,4 +112,17 @@ export class Utils {
console.error(`${errorMessage}: ${error}`);
}
}
static async reloadPageIfDatatableEmpty(
pageContext: PersonalFilesPage | MyLibrariesPage | FavoritesLibrariesPage | SearchPage | SharedPage | TrashPage,
errorMessage = 'reloadPageIfDatatableEmpty Error '
): Promise<void> {
try {
if (await pageContext.dataTable.getEmptyFolderLocator.isVisible() || await pageContext.dataTable.emptyListTitle.isVisible()) {
await pageContext.page.reload({ waitUntil: 'load' });
}
} catch (error) {
console.error(`${errorMessage}: ${error}`);
}
}
}