[ADF-4274] Should be able to reassign the removed user when starting a new task. (#4591)

* C305050 automated

* added the api call to delete the tasks created in afterAll() method and also creating a new user and using that in the Tests and deleting the user in the end rather than using 'Super Admin' and reduce the dependency on env configuration.

* linting fixes
This commit is contained in:
gmandakini
2019-04-12 09:25:29 +01:00
committed by Eugenio Romano
parent f258c79f7a
commit 0fe0ee9db7
2 changed files with 58 additions and 5 deletions

View File

@@ -18,8 +18,10 @@
import TestConfig = require('../test.config'); import TestConfig = require('../test.config');
import { NavigationBarPage } from '../pages/adf/navigationBarPage'; import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { LoginSSOPage, SettingsPage, AppListCloudPage, StringUtil, TaskHeaderCloudPage, import {
StartTasksCloudPage, PeopleCloudComponentPage } from '@alfresco/adf-testing'; LoginSSOPage, SettingsPage, AppListCloudPage, StringUtil, TaskHeaderCloudPage,
StartTasksCloudPage, PeopleCloudComponentPage, TasksService, ApiService, IdentityService
} from '@alfresco/adf-testing';
import { browser } from 'protractor'; import { browser } from 'protractor';
describe('Start Task', () => { describe('Start Task', () => {
@@ -33,6 +35,7 @@ describe('Start Task', () => {
const startTask = new StartTasksCloudPage(); const startTask = new StartTasksCloudPage();
const peopleCloudComponent = new PeopleCloudComponentPage(); const peopleCloudComponent = new PeopleCloudComponentPage();
const standaloneTaskName = StringUtil.generateRandomString(5); const standaloneTaskName = StringUtil.generateRandomString(5);
const reassignTaskName = StringUtil.generateRandomString(5);
const unassignedTaskName = StringUtil.generateRandomString(5); const unassignedTaskName = StringUtil.generateRandomString(5);
const taskName255Characters = StringUtil.generateRandomString(255); const taskName255Characters = StringUtil.generateRandomString(255);
const taskNameBiggerThen255Characters = StringUtil.generateRandomString(256); const taskNameBiggerThen255Characters = StringUtil.generateRandomString(256);
@@ -41,14 +44,36 @@ describe('Start Task', () => {
const dateValidationError = 'Date format DD/MM/YYYY'; const dateValidationError = 'Date format DD/MM/YYYY';
const user = TestConfig.adf.adminEmail, password = TestConfig.adf.adminPassword; const user = TestConfig.adf.adminEmail, password = TestConfig.adf.adminPassword;
const appName = 'simple-app'; const appName = 'simple-app';
let silentLogin; let silentLogin, activitiUser;
let tasksService: TasksService;
let identityService: IdentityService;
beforeAll(async(done) => {
const apiService = new ApiService('activiti', TestConfig.adf.hostBPM, TestConfig.adf.hostSso, 'BPM');
await apiService.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
identityService = new IdentityService(apiService);
tasksService = new TasksService(apiService);
activitiUser = await identityService.createIdentityUser();
beforeAll((done) => {
silentLogin = false; silentLogin = false;
settingsPage.setProviderBpmSso(TestConfig.adf.hostBPM, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin); settingsPage.setProviderBpmSso(TestConfig.adf.hostBPM, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin);
loginSSOPage.clickOnSSOButton(); loginSSOPage.clickOnSSOButton();
browser.ignoreSynchronization = true; browser.ignoreSynchronization = true;
loginSSOPage.loginSSOIdentityService(user, password); loginSSOPage.loginSSOIdentityService(user, password);
done();
});
afterAll(async (done) => {
const tasks = [ standaloneTaskName, unassignedTaskName, reassignTaskName ];
for (let i = 0; i < tasks.length; i++) {
const taskId = await tasksService.getTaskId(tasks[i], appName);
await tasksService.deleteTask(taskId, appName);
}
await identityService.deleteIdentityUser(activitiUser.idIdentityService);
done();
});
beforeEach((done) => {
navigationBarPage.navigateToProcessServicesCloudPage(); navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer(); appListCloudComponent.checkApsContainer();
appListCloudComponent.checkAppIsDisplayed(appName); appListCloudComponent.checkAppIsDisplayed(appName);
@@ -109,7 +134,7 @@ describe('Start Task', () => {
tasksCloudDemoPage.openNewTaskForm(); tasksCloudDemoPage.openNewTaskForm();
startTask.checkFormIsDisplayed(); startTask.checkFormIsDisplayed();
startTask.addName(standaloneTaskName); startTask.addName(standaloneTaskName);
peopleCloudComponent.searchAssigneeAndSelect('Super Admin'); peopleCloudComponent.searchAssigneeAndSelect(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`);
startTask.checkStartButtonIsEnabled(); startTask.checkStartButtonIsEnabled();
startTask.clickStartButton(); startTask.clickStartButton();
tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
@@ -139,6 +164,24 @@ describe('Start Task', () => {
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(unassignedTaskName); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(unassignedTaskName);
}); });
it('[C305050] Should be able to reassign the removed user when starting a new task', () => {
tasksCloudDemoPage.openNewTaskForm();
startTask.checkFormIsDisplayed();
startTask.addName(reassignTaskName);
expect(peopleCloudComponent.getAssignee()).toBe('Administrator ADF');
startTask.clearField(peopleCloudComponent.peopleCloudSearch);
peopleCloudComponent.searchAssignee(user);
peopleCloudComponent.checkUserIsDisplayed('Administrator ADF');
peopleCloudComponent.selectAssigneeFromList('Administrator ADF');
startTask.clickStartButton();
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(reassignTaskName);
tasksCloudDemoPage.taskListCloudComponent().selectRow(reassignTaskName);
expect(taskHeaderCloudPage.getAssignee()).toBe('admin.adf');
});
it('[C297675] Should create a task unassigned when assignee field is empty in Start Task form', () => { it('[C297675] Should create a task unassigned when assignee field is empty in Start Task form', () => {
tasksCloudDemoPage.openNewTaskForm(); tasksCloudDemoPage.openNewTaskForm();

View File

@@ -86,6 +86,16 @@ export class TasksService {
return data; return data;
} }
async getTaskId(taskName, appName) {
const path = '/' + appName + '/query/v1/tasks';
const method = 'GET';
const queryParams = {name: taskName}, postBody = {};
const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
return data.list.entries[0].entry.id;
}
async createStandaloneSubtask(parentTaskId, appName, name) { async createStandaloneSubtask(parentTaskId, appName, name) {
const path = '/' + appName + '/rb/v1/tasks'; const path = '/' + appName + '/rb/v1/tasks';
const method = 'POST'; const method = 'POST';