From 32d65b8087406fccc5db734a6843d8942727bd78 Mon Sep 17 00:00:00 2001 From: Alexey Sandler Date: Thu, 13 Feb 2020 17:31:00 +0200 Subject: [PATCH] the upgrade button is allowed when VFM in instance not exists in model. Issue-ID: VID-758 Signed-off-by: Alexey Sandler Change-Id: I8f5aceaf27480d6cc3ab6ec630bcaf285b683303 --- .../objectsToTree/shared.tree.service.spec.ts | 42 ++++++++++++++++++++-- .../objectsToTree/shared.tree.service.ts | 13 ++++++- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts index 3499377ac..dc4c2d3de 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts @@ -400,10 +400,10 @@ describe('Shared Tree Service', () => { [true, false, true, true], [true, false, false, false], ]). - test('when flag is %s the UpdatedLatestVersion is %s and Vfmodule CustomizationUuid Differ is %s isShouldShowButtonGenericMustToBeCalled should return %s', ( + test('when flag is %s the UpdatedLatestVersion is %s and Vfmodule not exists on hierarchy is %s isShouldShowButtonGenericMustToBeCalled should return %s', ( flag: boolean, isThereAnUpdatedLatestVersion: boolean, - isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer: boolean, + isVfModuleCustomizationIdNotExistsOnModel: boolean, isShouldShowButtonGenericMustToBeCalled: boolean ) => { let node = {}; @@ -416,11 +416,47 @@ describe('Shared Tree Service', () => { } }); spyOn(service, 'isThereAnUpdatedLatestVersion').and.returnValue(isThereAnUpdatedLatestVersion); - spyOn(service, 'isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer').and.returnValue(isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer); + spyOn(service, 'isVfModuleCustomizationIdNotExistsOnModel').and.returnValue(isVfModuleCustomizationIdNotExistsOnModel); expect(service.isVfMoudleCouldBeUpgraded(node, serviceModelId)).toEqual(isShouldShowButtonGenericMustToBeCalled); }); + each([ + ['Vfm customization uuid not exists in model', 'not-existing-customization-uuid', 'service-model-id', true], + ['Vfm customization uuid exists in model', 'existing-customization-uuid', 'service-model-id', false] + ]). + test('%s when vfModuleNode is %s and serviceModelId is %s ', ( + description, + modelCustomizationId, + serviceModelId: string, + isExistsOnHierarchy: boolean, + ) => { + + const vfModuleNode = { data: { + modelCustomizationId : modelCustomizationId + }}; + + jest.spyOn(store, 'getState').mockReturnValue({ + service : { + "serviceHierarchy": { + [serviceModelId]: { + "vfModules": { + "module-1": { + "customizationUuid": "3d7f41c8-333b-4fee-b50d-5687e9c2170f", + }, + "module-2": { + "customizationUuid": "existing-customization-uuid", + } + } + } + } + } + }); + expect(service.isVfModuleCustomizationIdNotExistsOnModel(vfModuleNode, serviceModelId)).toEqual(isExistsOnHierarchy); + + + }); + }); function getStore() { diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts index de859e4ea..864472505 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts @@ -222,7 +222,18 @@ export class SharedTreeService { isVfMoudleCouldBeUpgraded(node, serviceModelId): boolean{ return (FeatureFlagsService.getFlagState(Features.FLAG_FLASH_REPLACE_VF_MODULE, this._store) && - ((this.isThereAnUpdatedLatestVersion(serviceModelId)) || this.isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer(node, serviceModelId))) + (this.isThereAnUpdatedLatestVersion(serviceModelId) || this.isVfModuleCustomizationIdNotExistsOnModel(node, serviceModelId))) + } + + isVfModuleCustomizationIdNotExistsOnModel(vfModuleNode, serviceModelId) { + + // prevent undefined + if (_.isNil(vfModuleNode.data) || _.isNil(vfModuleNode.data.modelCustomizationId)) { + return false; + } + + let vfModulesHierarchyByGivenModelId = this._store.getState().service.serviceHierarchy[serviceModelId].vfModules; + return !_.some(vfModulesHierarchyByGivenModelId, vfmodel => vfmodel.customizationUuid === vfModuleNode.data.modelCustomizationId); } -- 2.16.6