From 640a01ed579abefa5781424ce16aa67f5e4f06a8 Mon Sep 17 00:00:00 2001 From: Eylon Malin Date: Sun, 8 Dec 2019 15:56:46 +0200 Subject: [PATCH] add create another one menu item to instantiationStatus page Issue-ID: VID-724 Signed-off-by: Eylon Malin Change-Id: I205bc276ec7ba59eae37207f0976867bd496043f Signed-off-by: Eylon Malin --- features.properties.md | 8 +++- .../java/org/onap/vid/properties/Features.java | 1 + .../integration/iFrames/instantiationStatus.e2e.ts | 54 +++++++++++++++------- .../jsonBuilders/mocks/jsons/flags.cypress.json | 3 +- .../instantiationStatus.component.html | 2 +- .../instantiationStatus.component.service.spec.ts | 34 +++++++------- .../instantiationStatus.component.service.ts | 10 ++-- .../instantiationStatus.component.ts | 8 ++++ .../services/featureFlag/feature-flags.service.ts | 1 + 9 files changed, 81 insertions(+), 40 deletions(-) diff --git a/features.properties.md b/features.properties.md index a8fac833f..8b80184e3 100644 --- a/features.properties.md +++ b/features.properties.md @@ -188,4 +188,10 @@ When flag is true the platform will appear as a multi select field, if false the platform will be dropdown list. * FLAG_2004_INSTANTIATION_STATUS_FILTER - when flag is true the user can filter rows in instantiation status by using text input + When flag is true the user can filter rows in instantiation status by using text input + +* FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE + When flag is true, the user see in instantiation status page, an option to recreate another instance. + This option is enabled only for instantiate jobs. + IF the user click on this option, the previous instantiation is opened in drawing board, + and the user can create another one from this template. diff --git a/vid-app-common/src/main/java/org/onap/vid/properties/Features.java b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java index d1a0cf97f..26bfec52f 100644 --- a/vid-app-common/src/main/java/org/onap/vid/properties/Features.java +++ b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java @@ -80,6 +80,7 @@ public enum Features implements Feature { FLAG_2002_VFM_UPGRADE_ADDITIONAL_OPTIONS, FLAG_2002_IDENTIFY_INVARIANT_MACRO_UUID_BY_BACKEND, FLAG_2004_INSTANTIATION_STATUS_FILTER, + FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE, FLAG_2004_TEMP_BUTTON_TO_INSTANTIATION_STATUS_FILTER, ; diff --git a/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts index 7e1311b48..9610d68fb 100644 --- a/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/instantiationStatus.e2e.ts @@ -7,6 +7,7 @@ import {AsyncInstantiationModel} from '../../support/jsonBuilders/models/asyncIn describe('Instantiation status', function () { var jsonBuilderInstantiationBuilder : JsonBuilder = new JsonBuilder(); var asyncRes: Array; + const contextMenuCreateAnotherOne = 'context-menu-recreate'; beforeEach(() => { cy.clearSessionStorage(); @@ -70,7 +71,7 @@ describe('Instantiation status', function () { cy.get('table#instantiation-status tbody tr').should('have.length', 2); }); - function getDropDownMenuByDataTestId(testId:String) { + function getDisabledDropDownItemByDataTestId(testId:String) { return cy.get('.dropdown-menu').find('.disabled').find(`[data-tests-id='${testId}']`); } @@ -79,37 +80,56 @@ describe('Instantiation status', function () { cy.get('#' + jobId).find('.menu-div').click(); } - it('should enable correct menu items', function () { + it('should disabled correct menu items', function () { cy.openIframe('app/ui/#/instantiationStatus'); // Instantiate action with Job status FAILED - isRetry = true clickOnTitleAndThenOnMenuWithJobId('5c2cd8e5-27d0-42e3-85a1-85db5eaba459'); - getDropDownMenuByDataTestId('context-menu-retry').should('not.exist'); - getDropDownMenuByDataTestId('context-menu-remove').should('exist'); - getDropDownMenuByDataTestId('context-menu-open').should('exist'); - getDropDownMenuByDataTestId('context-menu-hide').should('not.exist'); - getDropDownMenuByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-retry').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-hide').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('not.exist'); // Instantiate action with Job status FAILED - isRetry = false clickOnTitleAndThenOnMenuWithJobId('e1db03c3-6274-4ff7-84cf-7bd3a3946de7'); - getDropDownMenuByDataTestId('context-menu-retry').should('not.be.visible'); - getDropDownMenuByDataTestId('context-menu-open').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-retry').should('not.be.visible'); + getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); + getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('not.exist'); //Delete action with Job status IN_PROGRESS clickOnTitleAndThenOnMenuWithJobId('850dc7d2-5240-437f-9bcd-b1ed7dc339c2'); - getDropDownMenuByDataTestId('context-menu-remove').should('exist'); - getDropDownMenuByDataTestId('context-menu-open').should('exist'); - getDropDownMenuByDataTestId('context-menu-hide').should('exist'); - getDropDownMenuByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-open').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-hide').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('exist'); //Update action with Job status COMPLETED clickOnTitleAndThenOnMenuWithJobId('850dc7d2-5240-437f-9bcd-b1ed7dc339c1'); - getDropDownMenuByDataTestId('context-menu-remove').should('exist'); - getDropDownMenuByDataTestId('context-menu-open').should('not.exist'); - getDropDownMenuByDataTestId('context-menu-hide').should('not.exist'); - getDropDownMenuByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-remove').should('exist'); + getDisabledDropDownItemByDataTestId('context-menu-open').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-hide').should('not.exist'); + getDisabledDropDownItemByDataTestId('context-menu-audit-info').should('not.exist'); + getDisabledDropDownItemByDataTestId(contextMenuCreateAnotherOne).should('exist'); + }); + + it('clicking on create another one item, go to expected url', function () { + //see cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json id:8 + const jobId = '5c2cd8e5-27d0-42e3-85a1-85db5eaba459'; + const serviceModelId = 'e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0'; + const vidBaseUrl = `http://localhost:8080/vid/serviceModels.htm`; + + cy.openIframe('app/ui/#/instantiationStatus'); + + clickOnTitleAndThenOnMenuWithJobId(jobId); + cy.get('.dropdown-menu').getElementByDataTestsId(contextMenuCreateAnotherOne).click(); + cy.location().should((loc) => { + expect(loc.toString()).to.eq(`${vidBaseUrl}#/servicePlanning/RECREATE?serviceModelId=${serviceModelId}&jobId=${jobId}`); + }); }); }); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json index c7412edfb..5e92e4f4b 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json @@ -21,5 +21,6 @@ "FLAG_2002_VFM_UPGRADE_ADDITIONAL_OPTIONS": true, "FLAG_2004_TEMP_BUTTON_TO_INSTANTIATION_STATUS_FILTER": true, "FLAG_2004_INSTANTIATION_STATUS_FILTER": true, - "FLAG_2004_INSTANTIATION_TEMPLATES_POPUP" : false + "FLAG_2004_INSTANTIATION_TEMPLATES_POPUP" : false, + "FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE": true } diff --git a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html index 9ef98e55f..8e9e53602 100644 --- a/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html +++ b/vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.html @@ -74,7 +74,7 @@ -