1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
import {getTestBed, TestBed} from '@angular/core/testing';
import {AaiService} from "../../../services/aaiService/aai.service";
import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
import {ControlGeneratorUtil} from "./control.generator.util.service";
import {NgRedux} from '@angular-redux/store';
import each from "jest-each";
import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
import {FileFormControl} from "../../../models/formControlModels/fileFormControl.model";
import {AppState} from "../../../store/reducers";
import {SelectOption} from "../../../models/selectOption";
import {SharedControllersService} from "./sharedControlles/shared.controllers.service";
describe('Control Generator Util', () => {
let injector;
let service: ControlGeneratorUtil;
let sharedControllersService : SharedControllersService;
let httpMock: HttpTestingController;
let store: NgRedux<AppState>;
beforeAll(done => (async () => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [ControlGeneratorUtil,
SharedControllersService,
AaiService,
{provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
{provide: NgRedux, useClass: MockAppStore}]
});
await TestBed.compileComponents();
injector = getTestBed();
service = injector.get(ControlGeneratorUtil);
httpMock = injector.get(HttpTestingController);
sharedControllersService = injector.get(SharedControllersService);
store = injector.get(NgRedux);
})().then(done).catch(done.fail));
test('given instance, get supp file from getSupplementaryFile ', () => {
const instance = {};
const suppFileForInstance: FileFormControl = service.getSupplementaryFile(instance);
expect(suppFileForInstance.isVisible).toBeTruthy();
expect(suppFileForInstance.hiddenFile.length).toBeGreaterThanOrEqual(1);
expect(suppFileForInstance.hiddenFile[0].validations[0].validatorName).toEqual("isFileTooBig");
});
test('concatSupplementaryFile add SupplementaryFile control and hidden file', () => {
//given
const instance = {};
const controls = [sharedControllersService.getLegacyRegion(instance)];
expect(controls).toHaveLength(1);
//when
const result = service.concatSupplementaryFile(controls, instance);
//then
expect(controls).toHaveLength(1); //original controls remain the same
expect(result.map((control) => {return control.controlName})).toEqual([
"legacyRegion",
"supplementaryFile",
"supplementaryFile_hidden",
"supplementaryFile_hidden_content"
]);
});
each([
[null, false],
[{}, true]
]).
test('retrieveInstanceIfUpdateMode returns %s if update mode is %s', (expected, isUpdateModalMode) => {
//given
const store= <any>{
getState() {
return {
global: {
isUpdateModalMode
}
}}};
const instance = {};
//when
let retrievedInstance = service.retrieveInstanceIfUpdateMode (store, instance);
//then
expect(retrievedInstance).toEqual(expected);
});
test('getRollBackOnFailureOptions', async (done)=> {
service.getRollBackOnFailureOptions().subscribe((rollBackOnFailureOptions : SelectOption[])=>{
expect(rollBackOnFailureOptions[0].id).toEqual('true');
expect(rollBackOnFailureOptions[0].name).toEqual('Rollback');
expect(rollBackOnFailureOptions[1].id).toEqual('false');
expect(rollBackOnFailureOptions[1].name).toEqual('Don\'t Rollback');
done();
});
});
});
class MockAppStore<T> {
getState() {
return {}
}
}
class MockFeatureFlagsService {}
|