Catalog alignment
[sdc.git] / catalog-ui / src / app / ng2 / pages / workspace / deployment-artifacts / deployment-artifacts-page.spec.ts
1 // import ' rxjs/add/observable/of';
2 import { NO_ERRORS_SCHEMA } from '@angular/core';
3 import { async, ComponentFixture } from '@angular/core/testing';
4 import { NgxsModule, Store } from '@ngxs/store';
5 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
6 import { SdcUiServices } from 'onap-ui-angular';
7 import { Observable } from 'rxjs/Observable';
8 import { deploymentArtifactMock } from '../../../../../jest/mocks/artifacts-mock';
9 import { ConfigureFn, configureTests } from '../../../../../jest/test-config.helper';
10 import { ComponentMetadata } from '../../../../models/component-metadata';
11 import { ArtifactsService } from '../../../components/forms/artifacts-form/artifacts.service';
12 import { CacheService } from '../../../services/cache.service';
13 import { TopologyTemplateService } from '../../../services/component-services/topology-template.service';
14 import { TranslateModule } from '../../../shared/translator/translate.module';
15 import { TranslateService } from '../../../shared/translator/translate.service';
16 import { ArtifactsState } from '../../../store/states/artifacts.state';
17 import { WorkspaceService } from '../workspace.service';
18 import { DeploymentArtifactsPageComponent } from './deployment-artifacts-page.component';
19 import {ModalService} from "../../../services/modal.service";
20
21 describe('deployment artifacts page', () => {
22
23     let fixture: ComponentFixture<DeploymentArtifactsPageComponent>;
24     let topologyTemplateServiceMock: Partial<TopologyTemplateService>;
25     let workspaceServiceMock: Partial<WorkspaceService>;
26     let loaderServiceMock: Partial<SdcUiServices.LoaderService>;
27     let store: Store;
28
29     beforeEach(
30         async(() => {
31
32             topologyTemplateServiceMock = {
33                 getArtifactsByType: jest.fn().mockImplementation((componentType, id, artifactType) => Observable.of(deploymentArtifactMock))
34             };
35             workspaceServiceMock = {
36                 metadata: <ComponentMetadata>{
37                     uniqueId: 'service_unique_id',
38                     componentType: 'SERVICE'
39                 }
40             }
41
42             loaderServiceMock = {
43                 activate: jest.fn(),
44                 deactivate: jest.fn()
45             }
46             const configure: ConfigureFn = (testBed) => {
47                 testBed.configureTestingModule({
48                     declarations: [DeploymentArtifactsPageComponent],
49                     imports: [NgxDatatableModule, TranslateModule, NgxsModule.forRoot([ArtifactsState])],
50                     schemas: [NO_ERRORS_SCHEMA],
51                     providers: [
52                         {provide: WorkspaceService, useValue: workspaceServiceMock},
53                         {provide: TopologyTemplateService, useValue: topologyTemplateServiceMock},
54                         {provide: SdcUiServices.LoaderService, useValue: loaderServiceMock},
55                         {provide: ArtifactsService, useValue: {}},
56                         {provide: SdcUiServices.PopoverService, useValue: {}},
57                         {provide: CacheService, useValue: {}},
58                         {provide: SdcUiServices.ModalService, useValue: {}},
59                         {provide: ModalService, useValue: {}},
60                         {provide: TranslateService, useValue: {}}
61                     ],
62                 });
63             };
64
65             configureTests(configure).then((testBed) => {
66                 fixture = testBed.createComponent(DeploymentArtifactsPageComponent);
67                 store = testBed.get(Store);
68             });
69         })
70     );
71
72     it('should match current snapshot of informational artifact pages component', () => {
73         expect(fixture).toMatchSnapshot();
74     });
75
76     it('should see exactly 2 tosca artifacts', () => {
77         fixture.componentInstance.ngOnInit();
78         fixture.componentInstance.deploymentArtifacts$.subscribe((artifacts) => {
79             expect(artifacts.length).toEqual(8);
80         })
81         store.selectOnce((state) => state.artifacts.deploymentArtifacts).subscribe((artifacts) => {
82             expect(artifacts.length).toEqual(8);
83         });
84     });
85
86 });