import { UntypedFormBuilder, UntypedFormControl } from '@angular/forms'; import { fakeAsync, waitForAsync } from '@angular/core/testing'; import { ConfirmedValidator } from './confirmed.validator'; describe('ConfirmedValidator', () => { let passwordForm; beforeEach(waitForAsync(() => { passwordForm = (new UntypedFormBuilder()).group({ password: new UntypedFormControl('', {}), confirmPassword: new UntypedFormControl('', {}) }, { validator: ConfirmedValidator('password', 'confirmPassword') }); })); it('should validate that the password and confirm password match', fakeAsync(() => { passwordForm.get('password').patchValue('test-password'); passwordForm.get('confirmPassword').patchValue('test-password-mismatch'); expect(passwordForm.valid).toBe(false); })); it('should invalidate that the password and confirm password match', fakeAsync(() => { passwordForm.get('password').patchValue('test-password'); passwordForm.get('confirmPassword').patchValue('test-password'); expect(passwordForm.valid).toBe(true); })); });