64d553bfc9dda8670efe7075e7381b8373a75bd9
[vid.git] /
1 import {getTestBed, TestBed} from '@angular/core/testing';
2 import {AaiService} from "../../../services/aaiService/aai.service";
3 import {FormControlModel, ValidatorModel, ValidatorOptions} from "../../../models/formControlModels/formControl.model";
4 import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
5 import {BasicControlGenerator} from "./basic.control.generator";
6 import {NgRedux} from '@angular-redux/store';
7 import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
8 import {FileFormControl} from "../../../models/formControlModels/fileFormControl.model";
9
10 class MockAppStore<T> {}
11
12 class MockFeatureFlagsService {}
13
14 describe('Basic Control Generator', () => {
15   let injector;
16   let service: BasicControlGenerator;
17   let httpMock: HttpTestingController;
18
19
20   beforeAll(done => (async () => {
21     TestBed.configureTestingModule({
22       imports: [HttpClientTestingModule],
23       providers: [BasicControlGenerator,
24         AaiService,
25         {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
26         {provide: NgRedux, useClass: MockAppStore}]
27     });
28     await TestBed.compileComponents();
29
30     injector = getTestBed();
31     service = injector.get(BasicControlGenerator);
32     httpMock = injector.get(HttpTestingController);
33
34   })().then(done).catch(done.fail));
35
36
37   test('getlegacyRegion with AAIAIC25 - isVisible true', () => {
38     const instance = {lcpCloudRegionId : 'AAIAIC25'};
39     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
40     expect(legacyRegionControl.isVisible).toBeTruthy();
41   });
42
43   test('getlegacyRegion without AAIAIC25 - isVisible false', () => {
44     const instance = {lcpCloudRegionId : 'olson3'};
45     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
46     expect(legacyRegionControl.isVisible).toBeFalsy();
47   });
48
49   test('sdn-preload checkbox is visible', () => {
50     const instance = {};
51     const sdncPreload: FileFormControl = service.getSDNCControl(instance);
52     expect (sdncPreload.displayName).toEqual('SDN-C pre-load');
53     expect (sdncPreload.value).toBeFalsy();
54   });
55
56   test('given instance, get supp file from getSupplementaryFile ', () => {
57     const instance = {};
58     const suppFileForInstance: FileFormControl = service.getSupplementaryFile(instance);
59     expect(suppFileForInstance.isVisible).toBeTruthy();
60     expect(suppFileForInstance.hiddenFile.length).toBeGreaterThanOrEqual(1);
61     expect(suppFileForInstance.hiddenFile[0].validations[0].validatorName).toEqual("isFileTooBig");
62   });
63
64   test('concatSupplementaryFile add SupplementaryFile control and hidden file', () => {
65
66     //given
67     const instance = {};
68     const controls = [service.getLegacyRegion(instance)];
69     expect(controls).toHaveLength(1);
70
71     //when
72     const result = service.concatSupplementaryFile(controls, instance);
73
74     //then
75     expect(controls).toHaveLength(1); //original controls remain the same
76
77     expect(result.map((control) => {return control.controlName})).toEqual([
78       "legacyRegion",
79       "supplementaryFile",
80       "supplementaryFile_hidden",
81       "supplementaryFile_hidden_content"
82     ]);
83   });
84 });
85