1 import {FormControl, ValidatorFn} from "@angular/forms";
2 import {CustomValidators} from "./uniqueName.validator";
3 import {FileUnit} from "../../components/formControls/component/file/fileUnit.enum";
6 describe('Custom Validator Functions', () => {
7 test('isValidJson Validator should return null when value is valid and correct object when invalid', () => {
9 let isValidJsonFunction: ValidatorFn = CustomValidators.isValidJson();
11 expect(isValidJsonFunction(new FormControl("{ 'key': 'value', 'array': ['first',]}"))).toEqual({ isValidJson: true });
13 expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": ["first"]'))).toEqual({ isValidJson: true });
15 expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": ["first"]}'))).toEqual(null);
17 expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": "first"}'))).toEqual(null);
20 test('isStringContainTags Validator should return null when value is valid and correct object when invalid', () => {
22 const isStringContainTagsFunction: ValidatorFn = CustomValidators.isStringContainTags();
24 expect(isStringContainTagsFunction(new FormControl('<asdf>'))).toEqual({isStringContainTags : true});
26 expect(isStringContainTagsFunction(new FormControl('1234<asfd56'))).toEqual(null);
29 test('isFileTooBig Validator should return null when value is valid and correct object when invalid', () => {
31 let isFileTooBigFunction: ValidatorFn = CustomValidators.isFileTooBig(FileUnit.MB, 5);
33 expect(isFileTooBigFunction(new FormControl({ size: 6000001 }))).toEqual({ isFileTooBig: true });
35 expect(isFileTooBigFunction(new FormControl({ size: 4000000}))).toEqual(null);
37 isFileTooBigFunction = CustomValidators.isFileTooBig(FileUnit.B, 5);
39 expect(isFileTooBigFunction(new FormControl({ size: 4000000}))).toEqual({ isFileTooBig: true });