Drawing Board RECREATE will use a new route that retrieves a template
[vid.git] / vid-webpack-master / src / app / shared / resolvers / recreate / recreate.resolver.spec.ts
1 import {RecreateResolver} from "./recreate.resolver";
2 import {getTestBed, TestBed} from '@angular/core/testing';
3 import {NgRedux} from "@angular-redux/store";
4 import {InstantiationTemplatesService} from "../../services/templateService/instantiationTemplates.service";
5 import {AaiService} from "../../services/aaiService/aai.service";
6 import {mock} from "ts-mockito";
7 import {ServiceInstance} from "../../models/serviceInstance";
8 import {HttpClientTestingModule} from "@angular/common/http/testing";
9 import {FeatureFlagsService} from "../../services/featureFlag/feature-flags.service";
10 import {convertToParamMap} from "@angular/router";
11 import {of} from 'rxjs/observable/of'
12
13 class MockAppStore<T> {
14   getState() {}
15 }
16
17 describe('Recreate resolver', () => {
18
19   let injector;
20   let recreateResolver: RecreateResolver;
21   let aaiService: AaiService;
22   let instantiationTemplatesService: InstantiationTemplatesService;
23
24   beforeAll(done => (async () => {
25     TestBed.configureTestingModule({
26       imports: [HttpClientTestingModule],
27       providers: [
28         FeatureFlagsService,
29         InstantiationTemplatesService,
30         RecreateResolver,
31         AaiService,
32         {provide: NgRedux, useClass: MockAppStore},
33       ]
34     });
35     await TestBed.compileComponents();
36
37     injector = getTestBed();
38     recreateResolver = injector.get(RecreateResolver);
39     aaiService = injector.get(AaiService);
40     instantiationTemplatesService = injector.get(InstantiationTemplatesService);
41   })().then(done).catch(done.fail));
42
43   test("when resolve() invoked -> then getServiceModelById and retrieveAndStoreInstantiationTemplateTopology are called", done => {
44     jest.spyOn(aaiService, 'getServiceModelById')
45     .mockReturnValue(of({}));
46     jest.spyOn(instantiationTemplatesService, 'retrieveAndStoreInstantiationTemplateTopology')
47     .mockReturnValue(of(mock(ServiceInstance)));
48
49     recreateResolver.resolve(<any>{
50       queryParamMap:
51         convertToParamMap({
52           serviceModelId: "someServiceModelId",
53           jobId: "someJobId",
54         })
55     })
56
57     .subscribe(() => {
58       expect(aaiService.getServiceModelById)
59       .toHaveBeenCalledWith("someServiceModelId");
60       expect(instantiationTemplatesService.retrieveAndStoreInstantiationTemplateTopology)
61       .toHaveBeenCalledWith("someJobId", "someServiceModelId");
62       done();
63     });
64   })
65
66 });