diff --git a/e2e/playwright/folder-rules/playwright.config.ts b/e2e/playwright/folder-rules/playwright.config.ts index 8a4f25ecba..4255db5d2a 100644 --- a/e2e/playwright/folder-rules/playwright.config.ts +++ b/e2e/playwright/folder-rules/playwright.config.ts @@ -35,7 +35,7 @@ const config: PlaywrightTestConfig = { name: 'Folder Rules', testDir: './src/tests', use: { - users: ['admin'] + users: ['hruser'] } } ] diff --git a/e2e/playwright/folder-rules/src/tests/actions.spec.ts b/e2e/playwright/folder-rules/src/tests/actions.spec.ts index 2bbcf9542b..0ca2060142 100644 --- a/e2e/playwright/folder-rules/src/tests/actions.spec.ts +++ b/e2e/playwright/folder-rules/src/tests/actions.spec.ts @@ -23,10 +23,11 @@ */ import { expect } from '@playwright/test'; -import { ActionType, getUserState, test } from '@alfresco/playwright-shared'; +import { ActionType, ApiClientFactory, getUserState, test } from '@alfresco/playwright-shared'; -test.use({ storageState: getUserState('admin') }); +test.use({ storageState: getUserState('hruser') }); test.describe('Folder Rules Actions', () => { + const apiClientFactory = new ApiClientFactory(); const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`; const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`; const checkInValue = 'check In Value'; @@ -36,8 +37,9 @@ test.describe('Folder Rules Actions', () => { let folderId: string; - test.beforeAll(async ({ superAdminApiClient }) => { - const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' }); + test.beforeAll(async () => { + await apiClientFactory.setUpAcaBackend('hruser'); + const node = await apiClientFactory.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder' }); folderId = node.entry.id; }); @@ -45,8 +47,8 @@ test.describe('Folder Rules Actions', () => { await personalFiles.navigate({ waitUntil: 'domcontentloaded' }); }); - test.afterAll(async ({ superAdminApiClient }) => { - await superAdminApiClient.nodes.deleteNode(folderId); + test.afterAll(async () => { + await apiClientFactory.nodes.deleteNode(folderId); }); test('[C691637] Create a rule with actions', async ({ personalFiles, nodesPage }) => { diff --git a/e2e/playwright/folder-rules/src/tests/conditions.spec.ts b/e2e/playwright/folder-rules/src/tests/conditions.spec.ts index 283ddd5fea..7d5528fa6b 100644 --- a/e2e/playwright/folder-rules/src/tests/conditions.spec.ts +++ b/e2e/playwright/folder-rules/src/tests/conditions.spec.ts @@ -23,18 +23,20 @@ */ import { expect } from '@playwright/test'; -import { ActionType, Comparator, Field, getUserState, test } from '@alfresco/playwright-shared'; +import { ActionType, ApiClientFactory, Comparator, Field, getUserState, test } from '@alfresco/playwright-shared'; -test.use({ storageState: getUserState('admin') }); +test.use({ storageState: getUserState('hruser') }); test.describe('Folder Rules Conditions', () => { + const apiClientFactory = new ApiClientFactory(); const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`; const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`; const specialChars = '!@£$%^&*()~#/'; let folderId: string; - test.beforeAll(async ({ superAdminApiClient }) => { - const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' }); + test.beforeAll(async () => { + await apiClientFactory.setUpAcaBackend('hruser'); + const node = await apiClientFactory.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder' }); folderId = node.entry.id; }); @@ -42,8 +44,8 @@ test.describe('Folder Rules Conditions', () => { await personalFiles.navigate(); }); - test.afterAll(async ({ superAdminApiClient }) => { - await superAdminApiClient.nodes.deleteNode(folderId); + test.afterAll(async () => { + await apiClientFactory.nodes.deleteNode(folderId); }); test('[C691638] Create a rule with condition', async ({ personalFiles, nodesPage }) => { diff --git a/e2e/playwright/folder-rules/src/tests/manage-rules.spec.ts b/e2e/playwright/folder-rules/src/tests/manage-rules.spec.ts index 6683de63eb..143b144fc9 100644 --- a/e2e/playwright/folder-rules/src/tests/manage-rules.spec.ts +++ b/e2e/playwright/folder-rules/src/tests/manage-rules.spec.ts @@ -22,27 +22,29 @@ * from Hyland Software. If not, see . */ -import { getUserState, test } from '@alfresco/playwright-shared'; +import { ApiClientFactory, getUserState, test } from '@alfresco/playwright-shared'; -test.use({ storageState: getUserState('admin') }); +test.use({ storageState: getUserState('hruser') }); test.describe('Rules - Manage Rules', () => { + const apiClientFactory = new ApiClientFactory(); const randomName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`; const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`; let folderId: string; - test.beforeAll(async ({ superAdminApiClient }) => { - const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder', relativePath: '/' }); + test.beforeAll(async () => { + await apiClientFactory.setUpAcaBackend('hruser'); + const node = await apiClientFactory.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder' }); folderId = node.entry.id; - await superAdminApiClient.createRandomRule(folderId, randomRuleName); + await apiClientFactory.createRandomRule(folderId, randomRuleName); }); test.beforeEach(async ({ personalFiles }) => { await personalFiles.navigate(); }); - test.afterAll(async ({ superAdminApiClient }) => { - await superAdminApiClient.nodes.deleteNode(folderId); + test.afterAll(async () => { + await apiClientFactory.nodes.deleteNode(folderId); }); test('[C691651] Disable an existing rule', async ({ personalFiles, nodesPage }) => { diff --git a/projects/aca-playwright-shared/src/fixtures/page-initialization.ts b/projects/aca-playwright-shared/src/fixtures/page-initialization.ts index b9a701c7c0..3a35b75ca8 100644 --- a/projects/aca-playwright-shared/src/fixtures/page-initialization.ts +++ b/projects/aca-playwright-shared/src/fixtures/page-initialization.ts @@ -24,28 +24,18 @@ import { test as base } from '@playwright/test'; -import { ApiClientFactory, NodesPage, PersonalFilesPage } from '../'; +import { NodesPage, PersonalFilesPage } from '../'; interface Pages { personalFiles: PersonalFilesPage; nodesPage: NodesPage; } -interface Api { - superAdminApiClient: ApiClientFactory; -} - -export const test = base.extend({ +export const test = base.extend({ personalFiles: async ({ page }, use) => { await use(new PersonalFilesPage(page)); }, nodesPage: async ({ page }, use) => { await use(new NodesPage(page)); - }, - // eslint-disable-next-line no-empty-pattern - superAdminApiClient: async ({ }, use) => { - const apiClient = new ApiClientFactory(); - await apiClient.setUpAcaBackend('admin'); - await use(apiClient); } }); diff --git a/projects/aca-playwright-shared/src/page-objects/components/actions-dropdown.component.ts b/projects/aca-playwright-shared/src/page-objects/components/actions-dropdown.component.ts index d6d5d57c28..4671f5355e 100644 --- a/projects/aca-playwright-shared/src/page-objects/components/actions-dropdown.component.ts +++ b/projects/aca-playwright-shared/src/page-objects/components/actions-dropdown.component.ts @@ -75,6 +75,7 @@ export class ActionsDropdownComponent extends BaseComponent { await this.addActionButtonLocator.click(); } await this.actionDropdownLocator.nth(index).click(); + await this.spinnerWaitForReload(); const option = this.getOptionLocator(action); await option.click(); } diff --git a/projects/aca-playwright-shared/src/page-objects/components/base.component.ts b/projects/aca-playwright-shared/src/page-objects/components/base.component.ts index 3e62d41398..62919a0fdb 100644 --- a/projects/aca-playwright-shared/src/page-objects/components/base.component.ts +++ b/projects/aca-playwright-shared/src/page-objects/components/base.component.ts @@ -24,6 +24,7 @@ import { Locator, Page } from '@playwright/test'; import { PlaywrightBase } from '../playwright-base'; +import { timeouts } from '../../utils'; export abstract class BaseComponent extends PlaywrightBase { private readonly rootElement: string; @@ -55,8 +56,8 @@ export abstract class BaseComponent extends PlaywrightBase { async spinnerWaitForReload(): Promise { try { - await this.page.locator('mat-progress-spinner').waitFor({ state: 'attached', timeout: 2000 }); - await this.page.locator('mat-progress-spinner').waitFor({ state: 'detached', timeout: 2000 }); + await this.page.locator('mat-progress-spinner').waitFor({ state: 'attached', timeout: timeouts.short }); + await this.page.locator('mat-progress-spinner').waitFor({ state: 'detached', timeout: timeouts.normal }); } catch (e) { this.logger.info('Spinner was not present'); }