1 import { AbstractControl } from "@angular/forms";
2 import { datesInOrderValidator } from "./dates_in_order_validator.directive";
4 describe('datesInOrderValidator', () => {
5 const mockForm = jasmine.createSpyObj<AbstractControl>(['get']);
6 const mockEarlierDateInput = jasmine.createSpyObj<AbstractControl>('AbstractControl', [], {value: '2020-10-12'});
7 const mockLaterDateInput = jasmine.createSpyObj<AbstractControl>('AbstractControl', [], {value: '2030-01-01'});
8 it('returns null if two fields are in order', () => {
9 mockForm.get.and.returnValues(mockEarlierDateInput, mockLaterDateInput);
10 expect(datesInOrderValidator(['startDate', 'endDate'])(mockForm)).toEqual(null);
12 it('returns an object if fields are out of order', () => {
13 mockForm.get.and.returnValues(mockLaterDateInput, mockEarlierDateInput);
14 expect(datesInOrderValidator(['startDate', 'endDate'])(mockForm)).toEqual({ datesOutOfOrder: 'Dates should be in order' });