merge from ecomp a88f0072 - Modern UI
[vid.git] / vid-webpack-master / src / app / shared / validators / uniqueName / uniqueName.validator.spec.ts
1 import {FormControl, ValidatorFn} from "@angular/forms";
2 import {CustomValidators} from "./uniqueName.validator";
3 import {FileUnit} from "../../components/formControls/component/file/fileUnit.enum";
4
5
6 describe('Custom Validator Functions', () => {
7   test('isValidJson Validator should return null when value is valid and correct object when invalid', () => {
8
9     let isValidJsonFunction: ValidatorFn = CustomValidators.isValidJson();
10
11     expect(isValidJsonFunction(new FormControl("{ 'key': 'value', 'array': ['first',]}"))).toEqual({ isValidJson: true });
12
13     expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": ["first"]'))).toEqual({ isValidJson: true });
14
15     expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": ["first"]}'))).toEqual(null);
16
17     expect(isValidJsonFunction(new FormControl('{ "key": "value", "array": "first"}'))).toEqual(null);
18   });
19
20   test('isStringContainTags Validator should return null when value is valid and correct object when invalid', () => {
21
22     const isStringContainTagsFunction: ValidatorFn = CustomValidators.isStringContainTags();
23
24     expect(isStringContainTagsFunction(new FormControl('<asdf>'))).toEqual({isStringContainTags : true});
25
26     expect(isStringContainTagsFunction(new FormControl('1234<asfd56'))).toEqual(null);
27   });
28
29   test('isFileTooBig Validator should return null when value is valid and correct object when invalid', () => {
30
31     let isFileTooBigFunction: ValidatorFn = CustomValidators.isFileTooBig(FileUnit.MB, 5);
32
33     expect(isFileTooBigFunction(new FormControl({ size: 6000001 }))).toEqual({ isFileTooBig: true });
34
35     expect(isFileTooBigFunction(new FormControl({ size: 4000000}))).toEqual(null);
36
37     isFileTooBigFunction = CustomValidators.isFileTooBig(FileUnit.B, 5);
38
39     expect(isFileTooBigFunction(new FormControl({ size: 4000000}))).toEqual({ isFileTooBig: true });
40   })
41 });