import 'reflect-metadata'; import { InputWithValidationComponent, } from './input-with-validation.component'; import { FormControlState, } from 'ngrx-forms'; const initInputWithValidationComponent = () => { return new InputWithValidationComponent(); }; describe('displayedErrorMessage', () => { test('Returns false if showInvalidMessages is false', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = false; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBe(false); }); // tslint:disable-next-line test('Returns null if formControl is null and showInvalidMessage is true', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = true; inputWithValidationComponent.formControl = null; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBeNull(); }); // tslint:disable-next-line test('Returns null if formControl has no errors and showInvalidMessage is true', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = true; inputWithValidationComponent.formControl = { errors: null, } as FormControlState; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBeNull(); }); // tslint:disable-next-line test('Returns null if errorMessages is null, formControl has errors and showInvalidMessage is true', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = true; inputWithValidationComponent.formControl = { errors: {}, } as FormControlState; inputWithValidationComponent.errorMessages = null; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBeNull(); }); // tslint:disable-next-line test('Returns undefined if there is no matching errorMessages for the first of the formControl errors if showInvalidMessage is true', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = true; inputWithValidationComponent.formControl = { errors: { other: '123', } as { [key: string]: string }, } as FormControlState; inputWithValidationComponent.errorMessages = { test: '123', }; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBeUndefined(); }); // tslint:disable-next-line test('Returns the matching errorMessages for the first of the formControl errors if showInvalidMessage is true', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.showInvalidMessages = true; inputWithValidationComponent.formControl = { errors: { other: '123', } as { [key: string]: string }, } as FormControlState; inputWithValidationComponent.errorMessages = { other: 'message', }; const result = inputWithValidationComponent.displayedErrorMessage; expect(result).toBe('message'); }); }); describe('isCheckbox', () => { test('Returns true if the inputType is checkbox', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.inputType = 'checkbox'; const result = inputWithValidationComponent.isCheckbox(); expect(result).toBe(true); }); test('Returns false if the inputType is not checkbox', () => { const inputWithValidationComponent = initInputWithValidationComponent(); inputWithValidationComponent.inputType = 'text'; const result = inputWithValidationComponent.isCheckbox(); expect(result).toBe(false); }); });