From 9137854a2174b487696b2329207468c5c097633c Mon Sep 17 00:00:00 2001 From: "pawel.zlakowski@pcgacademia.pl" Date: Wed, 14 Jan 2026 14:02:45 +0100 Subject: [PATCH] fix: use built-in Angular email validator for eperson form (cherry picked from commit 1be9d852dc1d2e64cbf0362a356d986faf981a7d) --- .../eperson-form/eperson-form.component.spec.ts | 17 +++++++++++++++-- .../eperson-form/eperson-form.component.ts | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts index 6969b44f832..50edb7fcd25 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.spec.ts @@ -316,15 +316,28 @@ describe('EPersonFormComponent', () => { }); }); + describe('with uppercased email specified', () => { + beforeEach(() => { + component.formGroup.controls.firstName.setValue('test'); + component.formGroup.controls.lastName.setValue('test'); + component.formGroup.controls.email.setValue('TEST@test.com'); + fixture.detectChanges(); + }); + + it('passes validation check', () => { + expect(component.formGroup.controls.email.valid).toBeTrue(); + expect(component.formGroup.controls.email.errors).toBeNull(); + }); + }); describe('after inserting email wrong should show pattern validation error', () => { beforeEach(() => { - component.formGroup.controls.email.setValue('test@test'); + component.formGroup.controls.email.setValue('test'); fixture.detectChanges(); }); it('email should not be valid because the email pattern', () => { expect(component.formGroup.controls.email.valid).toBeFalse(); - expect(component.formGroup.controls.email.errors.pattern).toBeTruthy(); + expect(component.formGroup.controls.email.errors.email).toBeTruthy(); }); }); diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts index 14241938fca..ad3c389aa43 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts @@ -300,12 +300,12 @@ export class EPersonFormComponent implements OnInit, OnDestroy { name: 'email', validators: { required: null, - pattern: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$', + email: null, }, required: true, errorMessages: { emailTaken: 'error.validation.emailTaken', - pattern: 'error.validation.NotValidEmail', + email: 'error.validation.NotValidEmail', }, hint: this.translateService.instant(`${this.messagePrefix}.emailHint`), });