From d8321b977a0d5c6a33191d2b8281b2ea8e612e32 Mon Sep 17 00:00:00 2001 From: Silviu Popa Date: Sat, 30 Mar 2019 13:12:10 +0200 Subject: [PATCH] [ADF-4274] - Fix users filtering on single selection mode (#4476) * [ADF-4274] - fix users filtering on single selection mode * [ADF-4274] - add unit test --- .../people-cloud.component.spec.ts | 19 +++++++++++++++++++ .../people-cloud/people-cloud.component.ts | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.spec.ts index 5b188b5c87..c1238dc964 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.spec.ts @@ -398,4 +398,23 @@ describe('PeopleCloudComponent', () => { }); }); })); + + it('should not filter the preselect user in single selection mode', async ((done) => { + spyOn(identityService, 'findUserByUsername').and.returnValue(Promise.resolve(mockUsers)); + component.mode = 'single'; + component.validate = true; + component.preSelectUsers = [{ username: mockUsers[1].username }]; + fixture.detectChanges(); + let inputHTMLElement: HTMLInputElement = element.querySelector('input'); + inputHTMLElement.focus(); + inputHTMLElement.dispatchEvent(new Event('input')); + inputHTMLElement.dispatchEvent(new Event('keyup')); + inputHTMLElement.dispatchEvent(new Event('keydown')); + inputHTMLElement.value = mockUsers[1].username; + fixture.detectChanges(); + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(fixture.debugElement.queryAll(By.css('mat-option')).length).toBe(3); + }); + })); }); diff --git a/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.ts b/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.ts index 8319a5e89c..c91f63b91d 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.ts @@ -278,7 +278,7 @@ export class PeopleCloudComponent implements OnInit, OnChanges { } private isUserAlreadySelected(user: IdentityUserModel): boolean { - if (this.preSelectUsers && this.preSelectUsers.length > 0) { + if (this.preSelectUsers && this.preSelectUsers.length > 0 && this.isMultipleMode()) { const result = this.preSelectUsers.find((selectedUser) => { return selectedUser.id === user.id || selectedUser.email === user.email || selectedUser.username === user.username; });