[ADF-4847] Not able to find any user in Assignee field when creating a task (#5029)

* [ADF-4847] Not able to find any user in Assignee field when creating a task

Updated url to fetch composite user roles

* [ADF-4847] Fixing failing E2E tests
This commit is contained in:
Marouan Bentaleb
2019-08-29 09:46:47 +01:00
committed by Eugenio Romano
parent 64cecaa125
commit cdfae95c2a
3 changed files with 43 additions and 66 deletions

View File

@@ -19,7 +19,7 @@ import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { PeopleGroupCloudComponentPage } from '../pages/adf/demo-shell/process-services/peopleGroupCloudComponentPage'; import { PeopleGroupCloudComponentPage } from '../pages/adf/demo-shell/process-services/peopleGroupCloudComponentPage';
import { GroupCloudComponentPage, PeopleCloudComponentPage, SettingsPage } from '@alfresco/adf-testing'; import { GroupCloudComponentPage, PeopleCloudComponentPage, SettingsPage } from '@alfresco/adf-testing';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { LoginSSOPage, IdentityService, GroupIdentityService, RolesService, ApiService } from '@alfresco/adf-testing'; import { LoginSSOPage, IdentityService, GroupIdentityService, ApiService } from '@alfresco/adf-testing';
import resources = require('../util/resources'); import resources = require('../util/resources');
describe('People Groups Cloud Component', () => { describe('People Groups Cloud Component', () => {
@@ -37,56 +37,37 @@ describe('People Groups Cloud Component', () => {
); );
let identityService: IdentityService; let identityService: IdentityService;
let groupIdentityService: GroupIdentityService; let groupIdentityService: GroupIdentityService;
let rolesService: RolesService;
let apsUser, testUser; let apsUser, testUser;
let activitiUser;
let noRoleUser; let noRoleUser;
let groupAps;
let groupActiviti;
let groupNoRole; let groupNoRole;
let apsAdminRoleId;
let activitiAdminRoleId;
let clientActivitiAdminRoleId, clientActivitiUserRoleId;
let users = []; let users = [];
let groups = []; let hrGroup;
let clientId; let testGroup;
beforeAll(async () => { beforeAll(async () => {
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
identityService = new IdentityService(apiService); identityService = new IdentityService(apiService);
rolesService = new RolesService(apiService);
groupIdentityService = new GroupIdentityService(apiService); groupIdentityService = new GroupIdentityService(apiService);
clientId = await groupIdentityService.getClientIdByApplicationName(resources.ACTIVITI7_APPS.SIMPLE_APP.name); hrGroup = await groupIdentityService.getGroupInfoByGroupName('hr');
groupActiviti = await groupIdentityService.createIdentityGroup(); testGroup = await groupIdentityService.getGroupInfoByGroupName('testgroup');
clientActivitiAdminRoleId = await rolesService.getClientRoleIdByRoleName(groupActiviti.id, clientId, identityService.ROLES.ACTIVITI_ADMIN);
clientActivitiUserRoleId = await rolesService.getClientRoleIdByRoleName(groupActiviti.id, clientId, identityService.ROLES.ACTIVITI_USER);
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]); testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]);
apsUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]); apsUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]);
activitiUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]); await identityService.addUserToGroup(testUser.idIdentityService, testGroup.id);
await identityService.addUserToGroup(apsUser.idIdentityService, hrGroup.id);
noRoleUser = await identityService.createIdentityUser(); noRoleUser = await identityService.createIdentityUser();
await identityService.deleteClientRole(noRoleUser.idIdentityService, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
await identityService.deleteClientRole(noRoleUser.idIdentityService, clientId, clientActivitiUserRoleId, identityService.ROLES.ACTIVITI_USER);
groupAps = await groupIdentityService.createIdentityGroup();
apsAdminRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.APS_ADMIN);
await groupIdentityService.assignRole(groupAps.id, apsAdminRoleId, identityService.ROLES.APS_ADMIN);
activitiAdminRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.ACTIVITI_ADMIN);
await groupIdentityService.assignRole(groupActiviti.id, activitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
groupNoRole = await groupIdentityService.createIdentityGroup(); groupNoRole = await groupIdentityService.createIdentityGroup();
await groupIdentityService.addClientRole(groupAps.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN); users = [`${apsUser.idIdentityService}`, `${noRoleUser.idIdentityService}`, `${testUser.idIdentityService}`];
await groupIdentityService.addClientRole(groupActiviti.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
users = [`${apsUser.idIdentityService}`, `${activitiUser.idIdentityService}`, `${noRoleUser.idIdentityService}`, `${testUser.idIdentityService}`];
groups = [`${groupAps.id}`, `${groupActiviti.id}`, `${groupNoRole.id}`];
await settingsPage.setProviderBpmSso( await settingsPage.setProviderBpmSso(
browser.params.config.bpmHost, browser.params.config.bpmHost,
browser.params.config.oauth2.host, browser.params.config.oauth2.host,
browser.params.config.identityHost); browser.params.config.identityHost);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password);
}); });
@@ -95,14 +76,8 @@ describe('People Groups Cloud Component', () => {
for (let i = 0; i < users.length; i++) { for (let i = 0; i < users.length; i++) {
await identityService.deleteIdentityUser(users[i]); await identityService.deleteIdentityUser(users[i]);
} }
for (let i = 0; i < groups.length; i++) {
await groupIdentityService.deleteIdentityGroup(groups[i]);
}
await identityService.deleteIdentityUser(testUser.idIdentityService);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(activitiUser.idIdentityService);
await groupIdentityService.deleteIdentityGroup(groupNoRole.id);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -119,27 +94,27 @@ describe('People Groups Cloud Component', () => {
await peopleGroupCloudComponentPage.checkPeopleCloudSingleSelectionIsSelected(); await peopleGroupCloudComponentPage.checkPeopleCloudSingleSelectionIsSelected();
await peopleGroupCloudComponentPage.clickPeopleFilerByApp(); await peopleGroupCloudComponentPage.clickPeopleFilerByApp();
await peopleGroupCloudComponentPage.enterPeopleAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name); await peopleGroupCloudComponentPage.enterPeopleAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name);
await peopleCloudComponent.searchAssignee(`${activitiUser.firstName}`); await peopleCloudComponent.searchAssignee(`${testUser.firstName}`);
await peopleCloudComponent.checkUserIsDisplayed(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`); await peopleCloudComponent.checkUserIsDisplayed(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
await peopleCloudComponent.selectAssigneeFromList(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`); await peopleCloudComponent.selectAssigneeFromList(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
await browser.sleep(100); await browser.sleep(100);
await expect(await peopleCloudComponent.getAssigneeFieldContent()).toBe(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`); await expect(await peopleCloudComponent.getAssigneeFieldContent()).toBe(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
}); });
it('[C305041] Should filter the People Multiple Selection with the Application name filter', async () => { it('[C305041] Should filter the People Multiple Selection with the Application name filter', async () => {
await peopleGroupCloudComponentPage.clickPeopleCloudMultipleSelection(); await peopleGroupCloudComponentPage.clickPeopleCloudMultipleSelection();
await peopleGroupCloudComponentPage.clickPeopleFilerByApp(); await peopleGroupCloudComponentPage.clickPeopleFilerByApp();
await peopleGroupCloudComponentPage.enterPeopleAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name); await peopleGroupCloudComponentPage.enterPeopleAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name);
await peopleCloudComponent.searchAssignee(`${apsUser.firstName}`); await peopleCloudComponent.searchAssignee(`${testUser.firstName}`);
await peopleCloudComponent.checkUserIsDisplayed(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
await peopleCloudComponent.selectAssigneeFromList(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
await peopleCloudComponent.checkSelectedPeople(`${testUser.firstName}` + ' ' + `${testUser.lastName}`);
await peopleCloudComponent.searchAssigneeToExisting(`${apsUser.firstName}`);
await peopleCloudComponent.checkUserIsDisplayed(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`); await peopleCloudComponent.checkUserIsDisplayed(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`);
await peopleCloudComponent.selectAssigneeFromList(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`); await peopleCloudComponent.selectAssigneeFromList(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`);
await peopleCloudComponent.checkSelectedPeople(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`); await peopleCloudComponent.checkSelectedPeople(`${apsUser.firstName}` + ' ' + `${apsUser.lastName}`);
await peopleCloudComponent.searchAssigneeToExisting(`${activitiUser.firstName}`);
await peopleCloudComponent.checkUserIsDisplayed(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`);
await peopleCloudComponent.selectAssigneeFromList(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`);
await peopleCloudComponent.checkSelectedPeople(`${activitiUser.firstName}` + ' ' + `${activitiUser.lastName}`);
await peopleCloudComponent.searchAssigneeToExisting(`${noRoleUser.firstName}`); await peopleCloudComponent.searchAssigneeToExisting(`${noRoleUser.firstName}`);
await peopleCloudComponent.checkUserIsNotDisplayed(`${noRoleUser.firstName}` + ' ' + `${noRoleUser.lastName}`); await peopleCloudComponent.checkUserIsNotDisplayed(`${noRoleUser.firstName}` + ' ' + `${noRoleUser.lastName}`);
}); });
@@ -148,25 +123,25 @@ describe('People Groups Cloud Component', () => {
await peopleGroupCloudComponentPage.clickGroupCloudSingleSelection(); await peopleGroupCloudComponentPage.clickGroupCloudSingleSelection();
await peopleGroupCloudComponentPage.clickGroupFilerByApp(); await peopleGroupCloudComponentPage.clickGroupFilerByApp();
await peopleGroupCloudComponentPage.enterGroupAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name); await peopleGroupCloudComponentPage.enterGroupAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name);
await groupCloudComponentPage.searchGroups(`${groupActiviti.name}`); await groupCloudComponentPage.searchGroups(`${hrGroup.name}`);
await groupCloudComponentPage.checkGroupIsDisplayed(`${groupActiviti.name}`); await groupCloudComponentPage.checkGroupIsDisplayed(`${hrGroup.name}`);
await groupCloudComponentPage.selectGroupFromList(`${groupActiviti.name}`); await groupCloudComponentPage.selectGroupFromList(`${hrGroup.name}`);
await expect(await groupCloudComponentPage.getGroupsFieldContent()).toBe(`${groupActiviti.name}`); await expect(await groupCloudComponentPage.getGroupsFieldContent()).toBe(`${hrGroup.name}`);
}); });
it('[C305041] Should filter the Groups Multiple Selection with the Application name filter', async () => { it('[C305041] Should filter the Groups Multiple Selection with the Application name filter', async () => {
await peopleGroupCloudComponentPage.clickGroupCloudMultipleSelection(); await peopleGroupCloudComponentPage.clickGroupCloudMultipleSelection();
await peopleGroupCloudComponentPage.clickGroupFilerByApp(); await peopleGroupCloudComponentPage.clickGroupFilerByApp();
await peopleGroupCloudComponentPage.enterGroupAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name); await peopleGroupCloudComponentPage.enterGroupAppName(resources.ACTIVITI7_APPS.SIMPLE_APP.name);
await groupCloudComponentPage.searchGroups(`${groupAps.name}`); await groupCloudComponentPage.searchGroups(`${testGroup.name}`);
await groupCloudComponentPage.checkGroupIsDisplayed(`${groupAps.name}`); await groupCloudComponentPage.checkGroupIsDisplayed(`${testGroup.name}`);
await groupCloudComponentPage.selectGroupFromList(`${groupAps.name}`); await groupCloudComponentPage.selectGroupFromList(`${testGroup.name}`);
await groupCloudComponentPage.checkSelectedGroup(`${groupAps.name}`); await groupCloudComponentPage.checkSelectedGroup(`${testGroup.name}`);
await groupCloudComponentPage.searchGroupsToExisting(`${groupActiviti.name}`); await groupCloudComponentPage.searchGroupsToExisting(`${hrGroup.name}`);
await groupCloudComponentPage.checkGroupIsDisplayed(`${groupActiviti.name}`); await groupCloudComponentPage.checkGroupIsDisplayed(`${hrGroup.name}`);
await groupCloudComponentPage.selectGroupFromList(`${groupActiviti.name}`); await groupCloudComponentPage.selectGroupFromList(`${hrGroup.name}`);
await groupCloudComponentPage.checkSelectedGroup(`${groupActiviti.name}`); await groupCloudComponentPage.checkSelectedGroup(`${hrGroup.name}`);
await groupCloudComponentPage.searchGroupsToExisting(`${groupNoRole.name}`); await groupCloudComponentPage.searchGroupsToExisting(`${groupNoRole.name}`);
await groupCloudComponentPage.checkGroupIsNotDisplayed(`${groupNoRole.name}`); await groupCloudComponentPage.checkGroupIsNotDisplayed(`${groupNoRole.name}`);

View File

@@ -73,6 +73,7 @@ describe('Start Task', () => {
activitiUser = await identityService.createIdentityUser(); activitiUser = await identityService.createIdentityUser();
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr'); groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id); await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
await identityService.addUserToGroup(apsUser.idIdentityService, groupInfo.id);
await apiService.login(testUser.email, testUser.password); await apiService.login(testUser.email, testUser.password);
await settingsPage.setProviderBpmSso( await settingsPage.setProviderBpmSso(
@@ -86,13 +87,14 @@ describe('Start Task', () => {
afterAll(async () => { afterAll(async () => {
const tasksService = new TasksService(apiService); const tasksService = new TasksService(apiService);
const tasks = [standaloneTaskName, unassignedTaskName, reassignTaskName]; let taskId = await tasksService.getTaskId(standaloneTaskName, simpleApp);
for (let i = 0; i < tasks.length; i++) { await tasksService.deleteTask(taskId, simpleApp);
const taskId = await tasksService.getTaskId(tasks[i], simpleApp); taskId = await tasksService.getTaskId(unassignedTaskName, simpleApp);
if (taskId) { await tasksService.deleteTask(taskId, simpleApp);
await apiService.login(apsUser.email, apsUser.password);
taskId = await tasksService.getTaskId(reassignTaskName, simpleApp);
await tasksService.deleteTask(taskId, simpleApp); await tasksService.deleteTask(taskId, simpleApp);
}
}
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
await identityService.deleteIdentityUser(activitiUser.idIdentityService); await identityService.deleteIdentityUser(activitiUser.idIdentityService);
@@ -194,7 +196,7 @@ describe('Start Task', () => {
await tasksCloudDemoPage.openNewTaskForm(); await tasksCloudDemoPage.openNewTaskForm();
await startTask.checkFormIsDisplayed(); await startTask.checkFormIsDisplayed();
await startTask.addName(standaloneTaskName); await startTask.addName(standaloneTaskName);
await peopleCloudComponent.searchAssigneeAndSelect(`${activitiUser.firstName} ${activitiUser.lastName}`); await peopleCloudComponent.searchAssigneeAndSelect(`${apsUser.firstName} ${apsUser.lastName}`);
await startTask.checkStartButtonIsEnabled(); await startTask.checkStartButtonIsEnabled();
await startTask.clickStartButton(); await startTask.clickStartButton();

View File

@@ -672,7 +672,7 @@ export class IdentityUserService {
} }
private buildUserClientRoleMapping(userId: string, clientId: string): string { private buildUserClientRoleMapping(userId: string, clientId: string): string {
return `${this.appConfigService.get('identityHost')}/users/${userId}/role-mappings/clients/${clientId}`; return `${this.appConfigService.get('identityHost')}/users/${userId}/role-mappings/clients/${clientId}/composite`;
} }
private buildRolesUrl(userId: string): string { private buildRolesUrl(userId: string): string {