When opening new VNF modal the modal should be empty.
[vid.git] / vid-webpack-master / src / app / shared / components / genericForm / formControlsServices / basic.control.generator.spec.ts
1 import {getTestBed, TestBed} from '@angular/core/testing';
2 import {AaiService} from "../../../services/aaiService/aai.service";
3 import {FormControlModel} 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 each from "jest-each";
8 import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
9 import {FileFormControl} from "../../../models/formControlModels/fileFormControl.model";
10
11 class MockAppStore<T> {}
12
13 class MockFeatureFlagsService {}
14
15 describe('Basic Control Generator', () => {
16   let injector;
17   let service: BasicControlGenerator;
18   let httpMock: HttpTestingController;
19
20
21   beforeAll(done => (async () => {
22     TestBed.configureTestingModule({
23       imports: [HttpClientTestingModule],
24       providers: [BasicControlGenerator,
25         AaiService,
26         {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
27         {provide: NgRedux, useClass: MockAppStore}]
28     });
29     await TestBed.compileComponents();
30
31     injector = getTestBed();
32     service = injector.get(BasicControlGenerator);
33     httpMock = injector.get(HttpTestingController);
34
35   })().then(done).catch(done.fail));
36
37
38   test('getlegacyRegion with AAIAIC25 - isVisible true', () => {
39     const instance = {lcpCloudRegionId : 'AAIAIC25'};
40     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
41     expect(legacyRegionControl.isVisible).toBeTruthy();
42   });
43
44   test('getlegacyRegion without AAIAIC25 - isVisible false', () => {
45     const instance = {lcpCloudRegionId : 'olson3'};
46     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
47     expect(legacyRegionControl.isVisible).toBeFalsy();
48   });
49
50   test('sdn-preload checkbox is visible', () => {
51     const instance = {};
52     const sdncPreload: FormControlModel = service.getSDNCControl(instance);
53     expect (sdncPreload.displayName).toEqual('SDN-C pre-load');
54     expect (sdncPreload.value).toBeFalsy();
55   });
56
57   test('given instance, get supp file from getSupplementaryFile ', () => {
58     const instance = {};
59     const suppFileForInstance: FileFormControl = service.getSupplementaryFile(instance);
60     expect(suppFileForInstance.isVisible).toBeTruthy();
61     expect(suppFileForInstance.hiddenFile.length).toBeGreaterThanOrEqual(1);
62     expect(suppFileForInstance.hiddenFile[0].validations[0].validatorName).toEqual("isFileTooBig");
63   });
64
65   test('concatSupplementaryFile add SupplementaryFile control and hidden file', () => {
66
67     //given
68     const instance = {};
69     const controls = [service.getLegacyRegion(instance)];
70     expect(controls).toHaveLength(1);
71
72     //when
73     const result = service.concatSupplementaryFile(controls, instance);
74
75     //then
76     expect(controls).toHaveLength(1); //original controls remain the same
77
78     expect(result.map((control) => {return control.controlName})).toEqual([
79       "legacyRegion",
80       "supplementaryFile",
81       "supplementaryFile_hidden",
82       "supplementaryFile_hidden_content"
83     ]);
84   });
85   each([
86     [null, false],
87     [{}, true]
88   ]).
89   test('retrieveInstanceIfUpdateMode returns %s if update mode is %s', (expected, isUpdateModalMode) => {
90     //given
91     const store= <any>{
92       getState() {
93         return {
94           global: {
95             isUpdateModalMode
96           }
97         }}};
98     const instance = {};
99
100     //when
101     let retrievedInstance = service.retrieveInstanceIfUpdateMode (store, instance);
102
103     //then
104     expect(retrievedInstance).toEqual(expected);
105
106   });
107
108 });