Show "retain VG" for vfModule that is allowed or that is an "alien" 16/102216/2
authorEinat Vinouze <einat.vinouze@intl.att.com>
Mon, 24 Feb 2020 10:58:39 +0000 (12:58 +0200)
committerEinat Vinouze <einat.vinouze@intl.att.com>
Mon, 24 Feb 2020 13:30:04 +0000 (15:30 +0200)
Issue-ID: Issue-ID: VID-771
Signed-off-by: Einat Vinouze <einat.vinouze@intl.att.com>
Change-Id: Ie52fa194a92e0b9e21df723b708b4db877712068
Signed-off-by: Einat Vinouze <einat.vinouze@intl.att.com>
vid-app-common/src/test/resources/payload_jsons/vfmodule/upgrade_vfmodule_not_related_to_current_model_e2e__fe_input_cypress.json
vid-webpack-master/cypress/integration/iFrames/viewEditUpgradeVfModule.e2e.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popup.service.spec.ts

index 77cd6df..46eb342 100644 (file)
             "productFamilyId": null,
             "provStatus": null,
             "retainAssignments": false,
+            "retainVolumeGroups": false,
             "sdncPreLoad": true,
             "supplementaryFile": null,
             "supplementaryFile_hidden": null,
index 6338a10..cde41be 100644 (file)
@@ -219,7 +219,7 @@ describe('View Edit Page: Upgrade VFModule', function () {
 
       cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${serviceModelId}&subscriberId=${subscriberId}&serviceType=${serviceType}&serviceInstanceId=${serviceInstanceId}`);
 
-      upgradeTheVFM('node-3412fe1f-e103-4777-90c0-f66d888f4bed-mdns012220200..Mdns01222020..dns_az_01..module-1', false);
+      upgradeTheVFM('node-3412fe1f-e103-4777-90c0-f66d888f4bed-mdns012220200..Mdns01222020..dns_az_01..module-1', true);
 
       mockAsyncBulkResponse();
       cy.getDrawingBoardDeployBtn().click();
index 5181318..eddfee0 100644 (file)
@@ -16,7 +16,6 @@ import {FormControlModel} from "../../../../models/formControlModels/formControl
 import {CheckboxFormControl} from "../../../../models/formControlModels/checkboxFormControl.model";
 import {FormControlType} from "../../../../models/formControlModels/formControlTypes.enum";
 import {mergeObjectByPathAction} from "../../../../storeUtil/utils/general/general.actions";
-import * as _ from "lodash";
 import {VfModuleInstance} from "../../../../models/vfModuleInstance";
 import {SharedControllersService} from "../../../genericForm/formControlsServices/sharedControlles/shared.controllers.service";
 
@@ -49,7 +48,10 @@ export class VfModuleUpgradePopupService extends VfModulePopupServiceBase {
       this._sharedControllersService.getSDNCControl(null)
     ];
     const vfModuleInstance :VfModuleInstance = this._vfModuleControlGenerator.getVfModuleInstance(serviceId, vnfStoreKey, this.uuidData, isUpdateMode);
-    if(this._store.getState().service.serviceHierarchy[serviceId].vfModules[this.uuidData['modelName']].volumeGroupAllowed){
+
+    let volumeGroupAllowed = this._store.getState().service.serviceHierarchy[serviceId].vfModules[this.uuidData['modelName']].volumeGroupAllowed;
+    let vfModuleNotExistsOnModel = this._sharedTreeService.isVfModuleCustomizationIdNotExistsOnModel(this.uuidData['vfModule'], serviceId);
+    if(volumeGroupAllowed|| vfModuleNotExistsOnModel){
       result.push(this.getRetainVolumeGroupsControl());
     }
     result = this._basicControlGenerator.concatSupplementaryFile(result, vfModuleInstance);
index 578c37e..2123d6a 100644 (file)
@@ -1,6 +1,10 @@
 import {LogService} from "../../../../utils/log/log.service";
 import {NgRedux} from "@angular-redux/store";
-import {ControlGeneratorUtil, SDN_C_PRE_LOAD, SUPPLEMENTARY_FILE} from "../../../genericForm/formControlsServices/control.generator.util.service";
+import {
+  ControlGeneratorUtil,
+  SDN_C_PRE_LOAD,
+  SUPPLEMENTARY_FILE
+} from "../../../genericForm/formControlsServices/control.generator.util.service";
 import {AaiService} from "../../../../services/aaiService/aai.service";
 import {HttpClient} from "@angular/common/http";
 import {GenericFormService} from "../../../genericForm/generic-form.service";
@@ -9,7 +13,6 @@ import {IframeService} from "../../../../utils/iframe.service";
 import {DefaultDataGeneratorService} from "../../../../services/defaultDataServiceGenerator/default.data.generator.service";
 import {BasicPopupService} from "../basic.popup.service";
 import {VfModuleControlGenerator} from "../../../genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
-import {SdcUiServices} from "onap-ui-angular";
 import {FeatureFlagsService} from "../../../../services/featureFlag/feature-flags.service";
 import {getTestBed, TestBed} from "@angular/core/testing";
 import {UpgradeFormControlNames, VfModuleUpgradePopupService} from "./vfModule.upgrade.popuop.service";
@@ -65,6 +68,7 @@ describe('VFModule popup service', () => {
   let fb: FormBuilder;
   let iframeService: IframeService;
   let store : NgRedux<AppState>;
+  let _sharedTreeService : SharedTreeService;
 
   beforeAll(done => (async () => {
     TestBed.configureTestingModule({
@@ -95,8 +99,12 @@ describe('VFModule popup service', () => {
     defaultDataGeneratorService = injector.get(DefaultDataGeneratorService);
     fb = injector.get(FormBuilder);
     iframeService = injector.get(IframeService);
+    _sharedTreeService = injector.get(SharedTreeService);
     store = injector.get(NgRedux);
     service.uuidData = {
+      vfModule: {
+        data: {}
+      },
       modelName: 'vfModuleName',
       vFModuleStoreKey: 'vfModuleId'
     };
@@ -133,11 +141,16 @@ describe('VFModule popup service', () => {
     getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, true, true);
   });
 
-  test('get controls should NOT return retainVolumeGroup control with true value', ()=> {
-    let stateCopy =_.cloneDeep(store.getState());
-    stateCopy.service.serviceHierarchy['serviceId'].vfModules['vfModuleName'].volumeGroupAllowed = false;
-    jest.spyOn(store, 'getState').mockReturnValue(stateCopy);
-    getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, null, false);
+  [true, false].forEach(notExistsOnModel => {
+    test(`retainVolumeGroup control is shown when vfModule not from model (notExistsOnModel=${notExistsOnModel})`, () => {
+      let stateCopy = _.cloneDeep(store.getState());
+      stateCopy.service.serviceHierarchy['serviceId'].vfModules['vfModuleName'].volumeGroupAllowed = false;
+      jest.spyOn(store, 'getState').mockReturnValue(stateCopy);
+
+      jest.spyOn(_sharedTreeService, 'isVfModuleCustomizationIdNotExistsOnModel').mockReturnValue(notExistsOnModel);
+
+      getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, true, notExistsOnModel);
+    });
   });
 
   test('get controls should contain SUPPLEMENTARY_FILE controller', ()=> {