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";
21 describe('deployment artifacts page', () => {
23 let fixture: ComponentFixture<DeploymentArtifactsPageComponent>;
24 let topologyTemplateServiceMock: Partial<TopologyTemplateService>;
25 let workspaceServiceMock: Partial<WorkspaceService>;
26 let loaderServiceMock: Partial<SdcUiServices.LoaderService>;
32 topologyTemplateServiceMock = {
33 getArtifactsByType: jest.fn().mockImplementation((componentType, id, artifactType) => Observable.of(deploymentArtifactMock))
35 workspaceServiceMock = {
36 metadata: <ComponentMetadata>{
37 uniqueId: 'service_unique_id',
38 componentType: 'SERVICE'
46 const configure: ConfigureFn = (testBed) => {
47 testBed.configureTestingModule({
48 declarations: [DeploymentArtifactsPageComponent],
49 imports: [NgxDatatableModule, TranslateModule, NgxsModule.forRoot([ArtifactsState])],
50 schemas: [NO_ERRORS_SCHEMA],
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: {}}
65 configureTests(configure).then((testBed) => {
66 fixture = testBed.createComponent(DeploymentArtifactsPageComponent);
67 store = testBed.get(Store);
72 it('should match current snapshot of informational artifact pages component', () => {
73 expect(fixture).toMatchSnapshot();
76 it('should see exactly 2 tosca artifacts', () => {
77 fixture.componentInstance.ngOnInit();
78 fixture.componentInstance.deploymentArtifacts$.subscribe((artifacts) => {
79 expect(artifacts.length).toEqual(8);
81 store.selectOnce((state) => state.artifacts.deploymentArtifacts).subscribe((artifacts) => {
82 expect(artifacts.length).toEqual(8);