-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { async, ComponentFixture} from '@angular/core/testing';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Store } from '@ngxs/store';
import { CompositionPaletteService } from '../../../../../pages/composition/palette/services/palette.service';
import { Observable } from "rxjs";
import { leftPaletteElements } from "../../../../../../../jest/mocks/left-paeltte-elements.mock";
import { TranslatePipe } from "../../../../../shared/translator/translate.pipe";
-import { HttpClientModule } from "@angular/common/http";
-import { TranslateModule } from "../../../../../../../app/ng2/shared/translator/translate.module";
-import _ from "lodash";
import { TranslateService } from "../../../../../shared/translator/translate.service";
import { SdcUiServices } from "onap-ui-angular";
-import { Component as TopologyTemplate, FullComponentInstance, ComponentInstance } from '../../../../../../../app/models';
+import {Component as TopologyTemplate, ComponentInstance, ComponentMetadata} from '../../../../../../../app/models';
import {KeyValuePipe} from "../../../../../pipes/key-value.pipe";
-
+import {TopologyTemplateService} from "../../../../../services/component-services/topology-template.service";
+import {ComponentGenericResponse} from "../../../../../services/responses/component-generic-response";
+import {serviceMetadata} from "../../../../../../../jest/mocks/service-metadata.mock";
describe('InfoTabComponent', () => {
let storeStub:Partial<Store>;
let compositionPaletteServiceStub:Partial<CompositionPaletteService>;
let iAppMenuStub:Partial<IAppMenu>;
- let compositionServiceStub:Partial<CompositionService>;
- let serviceServiceNg2Stub:Partial<ServiceServiceNg2>;
- let workspaceServiceStub:Partial<WorkspaceService>;
- let componentInstanceServiceNg2Stub:Partial<ComponentInstanceServiceNg2>;
let eventListenerServiceStub:Partial<EventListenerService>;
+ let topologyTemplateServiceStub:Partial<TopologyTemplateService>;
+ let componentGenericResponseStub:Partial<ComponentGenericResponse>;
beforeEach(
async(() => {
compositionPaletteServiceStub = {
getLeftPaletteElements: jest.fn().mockImplementation(()=> Observable.of(leftPaletteElements))
}
+ componentGenericResponseStub = {
+ metadata: new ComponentMetadata()
+ }
+ componentGenericResponseStub.metadata.allVersions = serviceMetadata.allVersions;
+ topologyTemplateServiceStub = {
+ getComponentMetadata: jest.fn().mockImplementation(() => Observable.of(componentGenericResponseStub))
+ }
const configure: ConfigureFn = testBed => {
testBed.configureTestingModule({
imports: [ ],
{ provide: WorkspaceService, useValue: {} },
{ provide: ComponentInstanceServiceNg2, useValue: {} },
{ provide: EventListenerService, useValue: eventListenerServiceStub },
+ { provide: TopologyTemplateService, useValue: topologyTemplateServiceStub},
{ provide: TranslateService, useValue: {}}
]
});
});
it('does not contain the highest minor version if it is checked out', () => {
fixture.componentInstance.component = new ComponentInstance();
- fixture.componentInstance.component.allVersions =
+ fixture.componentInstance.component.allVersions =
{'1.0': "9c829122-af05-4bc9-b537-5d84f4c8ae25", '1.1': "930d56cb-868d-4e35-bd0f-e737d2fdb171"};
fixture.componentInstance.component.version = "1.0";
fixture.componentInstance.component.uuid = "a8cf015e-e4e5-4d4b-a01e-8624e8d36095";
import * as _ from 'lodash';
import {SelectedComponentType, TogglePanelLoadingAction} from "../../../common/store/graph.actions";
import Dictionary = _.Dictionary;
+import {TopologyTemplateService} from "../../../../../services/component-services/topology-template.service";
@Component({
private componentInstanceService: ComponentInstanceServiceNg2,
private serviceService: ServiceServiceNg2,
private eventListenerService: EventListenerService,
+ private topologyTemplateService: TopologyTemplateService,
@Inject(SdcMenuToken) public sdcMenu:IAppMenu) {
}
};
- private initEditResourceVersion = (component, leftPaletteComponents): void => {
- if(this.component instanceof ComponentInstance) {
-
+ initEditResourceVersion = (component, leftPaletteComponents): void => {
+ if (this.component instanceof ComponentInstance) {
this.versions = [];
- let sorted:any = _.sortBy(_.toPairs(component.allVersions), (item) => {
- return item[0] !== "undefined" && this.versioning(item[0]);
- });
- _.forEach(sorted, (item) => {
- this.versions.push({label: item[0], value: item[1]});
- });
-
- let highestVersion = _.last(sorted)[0];
-
- if (parseFloat(highestVersion) % 1) { //if highest is minor, make sure it is the latest checked in -
- let latestVersionComponent: LeftPaletteComponent = _.maxBy(
- _.filter(leftPaletteComponents, (leftPaletteComponent: LeftPaletteComponent) => { //latest checked in
- return (leftPaletteComponent.systemName === component.systemName || leftPaletteComponent.uuid === component.uuid);
- })
- , (component) => {
- return component.version
- });
-
- let latestVersion: string = latestVersionComponent ? latestVersionComponent.version : highestVersion;
-
- if (latestVersion && highestVersion != latestVersion) { //highest is checked out - remove from options
- this.versions = this.versions.filter(version => version.label != highestVersion);
+ this.topologyTemplateService.getComponentMetadata(component.getComponentUid(), component.originType)
+ .subscribe((response) => {
+ const allVersions = response.metadata.allVersions;
+ let sorted: any = _.sortBy(_.toPairs(allVersions), (item) => {
+ return item[0] !== "undefined" && this.versioning(item[0]);
+ });
+ _.forEach(sorted, (item) => {
+ this.versions.push({label: item[0], value: item[1]});
+ });
+
+ let highestVersion = _.last(sorted)[0];
+
+ if (parseFloat(highestVersion) % 1) { //if highest is minor, make sure it is the latest checked in -
+ let latestVersionComponent: LeftPaletteComponent = _.maxBy(
+ _.filter(leftPaletteComponents, (leftPaletteComponent: LeftPaletteComponent) => { //latest checked in
+ return (leftPaletteComponent.systemName === component.systemName || leftPaletteComponent.uuid === component.uuid);
+ })
+ , (component) => {
+ return component.version
+ });
+
+ let latestVersion: string = latestVersionComponent ? latestVersionComponent.version : highestVersion;
+
+ if (latestVersion && highestVersion != latestVersion) { //highest is checked out - remove from options
+ this.versions = this.versions.filter(version => version.label != highestVersion);
+ }
}
- }
+ });
}
}