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";
11 class MockAppStore<T> {}
13 class MockFeatureFlagsService {}
15 describe('Basic Control Generator', () => {
17 let service: BasicControlGenerator;
18 let httpMock: HttpTestingController;
21 beforeAll(done => (async () => {
22 TestBed.configureTestingModule({
23 imports: [HttpClientTestingModule],
24 providers: [BasicControlGenerator,
26 {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
27 {provide: NgRedux, useClass: MockAppStore}]
29 await TestBed.compileComponents();
31 injector = getTestBed();
32 service = injector.get(BasicControlGenerator);
33 httpMock = injector.get(HttpTestingController);
35 })().then(done).catch(done.fail));
38 test('getlegacyRegion with AAIAIC25 - isVisible true', () => {
39 const instance = {lcpCloudRegionId : 'AAIAIC25'};
40 const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
41 expect(legacyRegionControl.isVisible).toBeTruthy();
44 test('getlegacyRegion without AAIAIC25 - isVisible false', () => {
45 const instance = {lcpCloudRegionId : 'olson3'};
46 const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
47 expect(legacyRegionControl.isVisible).toBeFalsy();
50 test('sdn-preload checkbox is visible', () => {
52 const sdncPreload: FormControlModel = service.getSDNCControl(instance);
53 expect (sdncPreload.displayName).toEqual('SDN-C pre-load');
54 expect (sdncPreload.value).toBeFalsy();
57 test('given instance, get supp file from getSupplementaryFile ', () => {
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");
65 test('concatSupplementaryFile add SupplementaryFile control and hidden file', () => {
69 const controls = [service.getLegacyRegion(instance)];
70 expect(controls).toHaveLength(1);
73 const result = service.concatSupplementaryFile(controls, instance);
76 expect(controls).toHaveLength(1); //original controls remain the same
78 expect(result.map((control) => {return control.controlName})).toEqual([
81 "supplementaryFile_hidden",
82 "supplementaryFile_hidden_content"
89 test('retrieveInstanceIfUpdateMode returns %s if update mode is %s', (expected, isUpdateModalMode) => {
101 let retrievedInstance = service.retrieveInstanceIfUpdateMode (store, instance);
104 expect(retrievedInstance).toEqual(expected);