Skip to content

Commit

Permalink
[ACS-5585] add direct api-client-factory call in tests (#3323)
Browse files Browse the repository at this point in the history
  • Loading branch information
azakrzewski-hy authored Jul 10, 2023
1 parent e0e4dec commit f54ba92
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 34 deletions.
2 changes: 1 addition & 1 deletion e2e/playwright/folder-rules/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const config: PlaywrightTestConfig<CustomConfig> = {
name: 'Folder Rules',
testDir: './src/tests',
use: {
users: ['admin']
users: ['hruser']
}
}
]
Expand Down
14 changes: 8 additions & 6 deletions e2e/playwright/folder-rules/src/tests/actions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -36,17 +37,18 @@ 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;
});

test.beforeEach(async ({ personalFiles }) => {
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 }) => {
Expand Down
14 changes: 8 additions & 6 deletions e2e/playwright/folder-rules/src/tests/conditions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,29 @@
*/

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;
});

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('[C691638] Create a rule with condition', async ({ personalFiles, nodesPage }) => {
Expand Down
16 changes: 9 additions & 7 deletions e2e/playwright/folder-rules/src/tests/manage-rules.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,29 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/

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 }) => {
Expand Down
14 changes: 2 additions & 12 deletions projects/aca-playwright-shared/src/fixtures/page-initialization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Pages & Api>({
export const test = base.extend<Pages>({
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);
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -55,8 +56,8 @@ export abstract class BaseComponent extends PlaywrightBase {

async spinnerWaitForReload(): Promise<void> {
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');
}
Expand Down

0 comments on commit f54ba92

Please sign in to comment.