added POM structure for process service

This commit is contained in:
kritagya09
2023-03-28 14:54:47 +05:30
parent 8546d12701
commit 38e577561a
11 changed files with 459 additions and 541 deletions

3
.gitignore vendored
View File

@@ -34,3 +34,6 @@ licenses.txt
.DS_Store .DS_Store
.angular .angular
/test-results/
/playwright-report/
/playwright/.cache/

View File

@@ -8,4 +8,5 @@
export enum ComponentTitles { export enum ComponentTitles {
processServicesCloud = 'process-services-cloud', processServicesCloud = 'process-services-cloud',
processServices = 'process-services',
} }

View File

@@ -33,7 +33,9 @@ export class BaseStories extends PlaywrightBase {
async navigateTo(navigationParameters: NavigationParameters): Promise<void> { async navigateTo(navigationParameters: NavigationParameters): Promise<void> {
await this.page.goto(`/iframe.html?args=&viewMode=story&id=${this.buildStoryId(navigationParameters)}`, { await this.page.goto(`/iframe.html?args=&viewMode=story&id=${this.buildStoryId(navigationParameters)}`, {
waitUntil: 'networkidle', waitUntil: 'networkidle',
timeout: timeouts.large timeout: timeouts.globalSpec
}); })
await this.page.waitForTimeout(3000);
await this.page.screenshot({ path: 'screenshot.png', fullPage: true });
} }
} }

View File

@@ -90,6 +90,10 @@ export const getGlobalConfig = (): PlaywrightTestConfig => {
{ {
name: 'Process Services Cloud : Groups', name: 'Process Services Cloud : Groups',
testMatch: /.groups-cloud*\.e2e\.ts/ testMatch: /.groups-cloud*\.e2e\.ts/
},
{
name: 'Process Services : Tasks',
testMatch: /.task-assignee*\.e2e\.ts/
} }
], ],

View File

@@ -0,0 +1,11 @@
import { BaseComponent } from '../../page-object/components/base.component';
import { Page } from '@playwright/test';
export class processServices extends BaseComponent {
private static rootElement = 'Process Services';
constructor(page: Page, rootElement = processServices.rootElement) {
super(page, rootElement);
}
}

View File

@@ -0,0 +1,13 @@
import { BaseStories } from '../../page-object';
import { test as base } from '@playwright/test';
import { ComponentTitles } from '../../models/component-titles.model';
interface Pages {
processServices: BaseStories;
}
export const test = base.extend<Pages>({
processServices: async ({ page }, use) => { await use(new BaseStories(page, ComponentTitles.processServices)); },
});

View File

@@ -0,0 +1,19 @@
import { test } from "./fixtures/page-initialization";
test.describe.only('Task Assignee', () => {
test('Candidate User Assignee', async ({ processServices }) => {
await processServices.navigateTo({moduleNames:['adf-people'], componentName: 'adf-people', story: 'adf-people' });
});
});
// test.beforeAll(async () => {
// //await processServices.navigateTo({moduleNames:['people-cloud'], componentName: 'people-cloud', story: 'valid-preselected-users' });
// test('[C260387] Should the running process be displayed when clicking on Running filter', async ({ processServices }) => {
// await processServices.navigateTo({moduleNames:['people-cloud'], componentName: 'people-cloud', story: 'valid-preselected-users' });
// });
// });

View File

@@ -1,111 +0,0 @@
import { createApiService,
ApplicationsUtil,
LoginPage,
StartProcessPage,
UserModel,
UsersActions
} from '@alfresco/adf-testing';
import { NavigationBarPage } from 'e2e/core/pages/navigation-bar.page';
import { ProcessServicesPage } from 'e2e/process-services/pages/process-services.page';
import { ProcessFiltersPage } from 'e2e/process-services/pages/process-filters.page';
import { ProcessServiceTabBarPage } from 'e2e/process-services/pages/process-service-tab-bar.page';
import { ProcessDetailsPage } from 'e2e/process-services/pages/process-details.page';
import { ProcessListPage } from '@alfresco/adf-testing';
//import { Browser } from '@playwright/test';
import { browser } from 'protractor';
import { TasksPage } from 'e2e/process-services/pages/tasks.page';
import CONSTANTS = require('../../util/constants');
import { AdminGroupsApi } from '@alfresco/js-api';
import { test,expect } from 'e2e-playwright/process-services-cloud/fixtures/page-initialization';
test.describe('Task Assignee', () => {
const app = browser.params.resources.Files.TEST_ASSIGNEE;
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const processListPage = new ProcessListPage();
const processFiltersPage = new ProcessFiltersPage();
const startProcessPage = new StartProcessPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
const taskPage = new TasksPage();
const apiService = createApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const adminGroupsApi = new AdminGroupsApi(apiService.getInstance());
test.describe('Candidate User Assignee', () => {
let user: UserModel;
beforeEach(async () => {
await apiService.loginWithProfile('admin');
user = await usersActions.createUser(new UserModel({
firstName: app.candidate.firstName,
lastName: app.candidate.lastName
}));
try {// creates group if not available
await adminGroupsApi.createNewGroup({
'name': app.candidateGroup,
'tenantId': user.tenantId,
'type': 1
});
} catch (e) {
}
await apiService.login(user.username, user.password);
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
await loginPage.login(user.username, user.password);
});
afterEach(async () => {
await apiService.loginWithProfile('admin');
await usersActions.deleteTenant(user.tenantId);
await navigationBarPage.clickLogoutButton();
});
beforeEach(async () => {
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
});
test('[C260387] Should the running process be displayed when clicking on Running filter', async () => {
const name = 'sample-process-one';
await processServicesPage.goToApp(app.title);
await processServiceTabBarPage.clickProcessButton();
await expect(await processListPage.isProcessListDisplayed()).toEqual(true);
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.startProcess(name, app.processNames[0]);
await processFiltersPage.selectFromProcessList(name);
await processDetailsPage.activeTask.click();
await taskPage.tasksListPage().checkContentIsDisplayed(app.userTasks.simple.one);
await taskPage.tasksListPage().selectRow(app.userTasks.simple.one);
await taskPage.taskDetails().clickCompleteFormTask();
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.simple.one);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.simple.one);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.simple.one);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.taskDetails().clickCompleteFormTask();
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.simple.two);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().checkContentIsDisplayed(app.userTasks.simple.two);
});
});
});

830
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -113,7 +113,7 @@
"@nrwl/storybook": "14.5.4", "@nrwl/storybook": "14.5.4",
"@nrwl/workspace": "14.5.4", "@nrwl/workspace": "14.5.4",
"@paperist/types-remark": "0.1.3", "@paperist/types-remark": "0.1.3",
"@playwright/test": "^1.29.2", "@playwright/test": "^1.32.1",
"@quanzo/change-font-size": "1.0.0", "@quanzo/change-font-size": "1.0.0",
"@storybook/addon-essentials": "6.5.10", "@storybook/addon-essentials": "6.5.10",
"@storybook/angular": "6.5.10", "@storybook/angular": "6.5.10",

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB