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";
10 class MockAppStore<T> {}
12 class MockFeatureFlagsService {}
14 describe('Basic Control Generator', () => {
16 let service: BasicControlGenerator;
17 let httpMock: HttpTestingController;
20 beforeAll(done => (async () => {
21 TestBed.configureTestingModule({
22 imports: [HttpClientTestingModule],
23 providers: [BasicControlGenerator,
25 {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
26 {provide: NgRedux, useClass: MockAppStore}]
28 await TestBed.compileComponents();
30 injector = getTestBed();
31 service = injector.get(BasicControlGenerator);
32 httpMock = injector.get(HttpTestingController);
34 })().then(done).catch(done.fail));
37 test('getlegacyRegion with AAIAIC25 - isVisible true', () => {
38 const instance = {lcpCloudRegionId : 'AAIAIC25'};
39 const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
40 expect(legacyRegionControl.isVisible).toBeTruthy();
43 test('getlegacyRegion without AAIAIC25 - isVisible false', () => {
44 const instance = {lcpCloudRegionId : 'olson3'};
45 const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
46 expect(legacyRegionControl.isVisible).toBeFalsy();
49 test('sdn-preload checkbox is visible', () => {
51 const sdncPreload: FileFormControl = service.getSDNCControl(instance);
52 expect (sdncPreload.displayName).toEqual('SDN-C pre-load');
53 expect (sdncPreload.value).toBeFalsy();
56 test('given instance, get supp file from getSupplementaryFile ', () => {
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");
64 test('concatSupplementaryFile add SupplementaryFile control and hidden file', () => {
68 const controls = [service.getLegacyRegion(instance)];
69 expect(controls).toHaveLength(1);
72 const result = service.concatSupplementaryFile(controls, instance);
75 expect(controls).toHaveLength(1); //original controls remain the same
77 expect(result.map((control) => {return control.controlName})).toEqual([
80 "supplementaryFile_hidden",
81 "supplementaryFile_hidden_content"