From f54ba92f77432255854a52e1aca422e5418de744 Mon Sep 17 00:00:00 2001 From: Adam Zakrzewski <122363592+azakrzewski-hy@users.noreply.github.com> Date: Mon, 10 Jul 2023 16:12:51 +0200 Subject: [PATCH] [ACS-5585] add direct api-client-factory call in tests (#3323) --- e2e/playwright/folder-rules/playwright.config.ts | 2 +- .../folder-rules/src/tests/actions.spec.ts | 14 ++++++++------ .../folder-rules/src/tests/conditions.spec.ts | 14 ++++++++------ .../folder-rules/src/tests/manage-rules.spec.ts | 16 +++++++++------- .../src/fixtures/page-initialization.ts | 14 ++------------ .../components/actions-dropdown.component.ts | 1 + .../page-objects/components/base.component.ts | 5 +++-- 7 files changed, 32 insertions(+), 34 deletions(-) diff --git a/e2e/playwright/folder-rules/playwright.config.ts b/e2e/playwright/folder-rules/playwright.config.ts index 8a4f25ecb..4255db5d2 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 2bbcf9542..0ca206014 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 283ddd5fe..7d5528fa6 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 6683de63e..143b144fc 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 b9a701c7c..3a35b75ca 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 d6d5d57c2..4671f5355 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 3e62d4139..62919a0fd 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'); }