When feature toggle is active then SDNC preload files is enable.
[vid.git] / vid-webpack-master / cypress / integration / iFrames / instantiation-templates.e2e.ts
index c83f92d..f7419ef 100644 (file)
@@ -25,7 +25,7 @@ describe('Drawing Board: Instantiation Templates', function () {
 
       it(`Given a stored template - when click "deploy" - then a coherent request should be sent upon deploy`, () => {
 
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
         // Then...
         cy.getElementByDataTestsId("node-vProbe_NC_VNF 0").should('be.visible');
@@ -34,8 +34,9 @@ describe('Drawing Board: Instantiation Templates', function () {
 
       it('Given a template - User can remove existing VNF', () => {
 
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
+        removeVNFWithVFModules('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0');
         removeVNFWithVFModules('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0');
 
         cy.getDrawingBoardDeployBtn().click();
@@ -46,43 +47,52 @@ describe('Drawing Board: Instantiation Templates', function () {
       });
 
       it('Given a template - User can add new VNF', () => {
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
         // add new node
         addNewNode('node-vProbe_NC_VNF 0-add-btn')
           .fillVnfPopup()
           .getDrawingBoardDeployBtn().click()
           .wait('@expectedPostAsyncInstantiation').then(xhr => {
-            const vnfRequest = bodyOf(xhr).vnfs['vProbe_NC_VNF 0_1'];
-
-            expect(vnfRequest.action).equals("Create");
-            expect(vnfRequest.rollbackOnFailure).equals("true");
-            expect(vnfRequest.originalName).equals("vProbe_NC_VNF 0");
-            expect(vnfRequest.productFamilyId).equals("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
-            expect(vnfRequest.lcpCloudRegionId).equals("hvf6");
-            expect(vnfRequest.lineOfBusiness).equals("zzz1");
-            expect(vnfRequest.platformName).equals("xxx1");
-            expect(vnfRequest.tenantId).equals("229bcdc6eaeb4ca59d55221141d01f8e");
+          const vnfRequest = bodyOf(xhr).vnfs['vProbe_NC_VNF 0_2'];
+
+          expect(vnfRequest.action).equals("Create");
+          expect(vnfRequest.rollbackOnFailure).equals("true");
+          expect(vnfRequest.originalName).equals("vProbe_NC_VNF 0");
+          expect(vnfRequest.productFamilyId).equals("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+          expect(vnfRequest.lcpCloudRegionId).equals("hvf6");
+          expect(vnfRequest.lineOfBusiness).equals("zzz1");
+          expect(vnfRequest.platformName).equals("xxx1");
+          expect(vnfRequest.tenantId).equals("229bcdc6eaeb4ca59d55221141d01f8e");
+
+
+          // check instance name not change if empty
+          cy.editNode('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0', 0)
+            .clearInput('instanceName');
+          cy.getElementByDataTestsId('form-set').click({force: true}).then((done) => {
+            cy.editNode('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0', 0)
+              .getElementByDataTestsId('instanceName').should('be.empty')
+          });
         });
       });
 
       it('Given a template - User can Duplicate VNF', () => {
         const numberOfDuplicate: number = 4;
-        loadDrawingBoardWithRecreateMode();
-        nodeAction('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0', 'Duplicate')
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
+        cy.nodeAction('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0', 'Duplicate')
           .getElementByDataTestsId('duplicate-amount-vfmodules').select(numberOfDuplicate.toString())
           .getTagElementContainsText('button', 'Duplicate').click()
           .getDrawingBoardDeployBtn().click()
           .wait('@expectedPostAsyncInstantiation').then(xhr => {
-            expect(Object.keys(bodyOf(xhr).vnfs).length).equals(numberOfDuplicate + 1);
+          expect(Object.keys(bodyOf(xhr).vnfs).length).equals(numberOfDuplicate + 2);
         });
       });
 
       it('Given a stored template - when "edit" vnf and vfmodules are opened - then template’s details are visible as expected and deploy without changes', () => {
 
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
         // Then...
-        editNode("node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0")
+        cy.editNode("node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0")
           .getElementByDataTestsId("instanceName").should('have.value', 'hvf6arlba007')
           .getElementByDataTestsId("productFamily").should('contain', 'Emanuel')
           .getElementByDataTestsId("tenant").should('contain', 'DN5242-Nov21-T1')
@@ -92,14 +102,14 @@ describe('Drawing Board: Instantiation Templates', function () {
           .checkPlatformValue('xxx1')
           .getElementByDataTestsId("cancelButton").click();
 
-        editNode("node-c5b26cc1-a66f-4b69-aa23-6abc7c647c88-vprobe_nc_vnf0..VprobeNcVnf..FE_base_module..module-0")
+        cy.editNode("node-c5b26cc1-a66f-4b69-aa23-6abc7c647c88-vprobe_nc_vnf0..VprobeNcVnf..FE_base_module..module-0")
           .getElementByDataTestsId("instanceName").should('have.value', 'hvf6arlba007_lba_Base_01')
           .getElementByDataTestsId("lcpRegion").should('contain', 'hvf6')
           .getElementByDataTestsId("tenant").should('contain', 'DN5242-Nov21-T1')
           .getElementByDataTestsId("rollback").should('contain', 'Rollback')
           .getElementByDataTestsId("cancelButton").click();
 
-        editNode("node-c09e4530-8fd8-418f-9483-2f57ce927b05-vprobe_nc_vnf0..VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1")
+        cy.editNode("node-c09e4530-8fd8-418f-9483-2f57ce927b05-vprobe_nc_vnf0..VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1")
           .getElementByDataTestsId("instanceName").should('have.value', 'my_hvf6arlba007_lba_dj_01')
           .getElementByDataTestsId("volumeGroupName").should('have.value', 'my_special_hvf6arlba007_lba_dj_01_vol')
           .getElementByDataTestsId("lcpRegion").should('contain', 'hvf6')
@@ -110,12 +120,13 @@ describe('Drawing Board: Instantiation Templates', function () {
 
         assertThatBodyFromDeployRequestEqualsToTemplateFromBackEnd([
           {path: [...vnfPath, "vnfStoreKey"], value: "vProbe_NC_VNF 0"}, // side-effect
+          {path: [...vnfPath2, "vnfStoreKey"], value: "vProbe_NC_VNF 0_1"},
         ]);
       });
 
       it(`Given a stored template - when "edit" service is opened - then template’s details are visible as expected`, function () {
 
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
         cy.openServiceContextMenu()
           .getElementByDataTestsId("context-menu-header-edit-item").click()
@@ -129,25 +140,25 @@ describe('Drawing Board: Instantiation Templates', function () {
       });
 
       it(`Given a stored template - add one VfModule, edit its details, and deploy - deploy is added with the vfModule details`, () => {
-        loadDrawingBoardWithRecreateMode();
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
         let newVfModuleName = "new.vfmodule.name";
         let module1ModelId = "VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1";
         let module1CustomizationId = `vprobe_nc_vnf0..${module1ModelId}`;
 
         // Click target VNF on right tree
-        cy.getElementByDataTestsId('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0').click();
+        cy.getElementByDataTestsId('node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0').first().click();
 
         // Click [+] vfModule on left tree
         cy.drawingBoardPressAddButtonByElementName(`node-${module1CustomizationId}`)
           .click({force: true});
 
-        editNode(`node-c09e4530-8fd8-418f-9483-2f57ce927b05-${module1CustomizationId}`, 1);
-          cy.clearInput("instanceName");
-          cy.typeToInput("instanceName", newVfModuleName);
-          cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
-          cy.selectDropdownOptionByText('tenant', 'DN5242-Nov21-T1');
-          cy.getElementByDataTestsId('form-set').click();
+        cy.editNode(`node-c09e4530-8fd8-418f-9483-2f57ce927b05-${module1CustomizationId}`, 1);
+        cy.clearInput("instanceName");
+        cy.typeToInput("instanceName", newVfModuleName);
+        cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
+        cy.selectDropdownOptionByText('tenant', 'DN5242-Nov21-T1');
+        cy.getElementByDataTestsId('form-set').click();
 
         // Then...
         cy.getReduxState().then((state) => {
@@ -173,6 +184,7 @@ describe('Drawing Board: Instantiation Templates', function () {
 
           assertThatBodyFromDeployRequestEqualsToTemplateFromBackEnd([
             {path: [...vnfPath, "vnfStoreKey"], value: "vProbe_NC_VNF 0"},   // side-effect
+            {path: [...vnfPath2, "vnfStoreKey"], value: "vProbe_NC_VNF 0_1"},
             {path: ["existingNames", newVfModuleName], value: ""},
             {path: ["existingNames", `${newVfModuleName}_vol`], value: ""},
             {path: latestVfModule_1Path, value: latestVfModule_1ExpectedValue},
@@ -184,8 +196,8 @@ describe('Drawing Board: Instantiation Templates', function () {
 
       it('Given a template - User can remove existing vfmodule', function () {
 
-        loadDrawingBoardWithRecreateMode();
-        nodeAction('node-c09e4530-8fd8-418f-9483-2f57ce927b05-vprobe_nc_vnf0..VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1', 'Remove');
+        cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
+        cy.nodeAction('node-c09e4530-8fd8-418f-9483-2f57ce927b05-vprobe_nc_vnf0..VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1', 'Remove');
         let removed_vfModule_Path = [
           ...vnfPath, "vfModules",
           "vprobe_nc_vnf0..VprobeNcVnf..FE_Add_On_Module_vlbagent_eph..module-1",
@@ -193,6 +205,7 @@ describe('Drawing Board: Instantiation Templates', function () {
 
         assertThatBodyFromDeployRequestEqualsToTemplateFromBackEnd([
           {path: [...vnfPath, "vnfStoreKey"], value: "vProbe_NC_VNF 0"}, // side-effect
+          {path: [...vnfPath2, "vnfStoreKey"], value: "vProbe_NC_VNF 0_1"},
           {path: [...removed_vfModule_Path], value: undefined},
         ]);
       });
@@ -204,7 +217,7 @@ describe('Drawing Board: Instantiation Templates', function () {
 
         it(`Given a stored template - edit service vnf and vfmodule ${testCase.desc} - deploy request should be ${testCase.desc}`, function () {
 
-          loadDrawingBoardWithRecreateMode();
+          cy.loadDrawingBoardWithRecreateMode(templateWithVnfSetup);
 
           //edit service
           cy.openServiceContextMenu();
@@ -216,7 +229,7 @@ describe('Drawing Board: Instantiation Templates', function () {
           cy.getElementByDataTestsId('form-set').click();
 
           // edit vnf
-          editNode("node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0");
+          cy.editNode("node-21ae311e-432f-4c54-b855-446d0b8ded72-vProbe_NC_VNF 0");
           if (testCase.modifySomeValues) {
             cy.selectPlatformValue('platform');
             cy.selectDropdownOptionByText("tenant", "CESAR-100-D-spjg61909");
@@ -224,7 +237,7 @@ describe('Drawing Board: Instantiation Templates', function () {
           cy.getElementByDataTestsId('form-set').click();
 
           //edit vf module
-          editNode("node-c5b26cc1-a66f-4b69-aa23-6abc7c647c88-vprobe_nc_vnf0..VprobeNcVnf..FE_base_module..module-0");
+          cy.editNode("node-c5b26cc1-a66f-4b69-aa23-6abc7c647c88-vprobe_nc_vnf0..VprobeNcVnf..FE_base_module..module-0");
           if (testCase.modifySomeValues) {
             cy.getElementByDataTestsId('sdncPreLoad').click();
           }
@@ -251,9 +264,9 @@ describe('Drawing Board: Instantiation Templates', function () {
 
       });
 
-      it(`Given a stored template of Network - - it is loaded`,  () => {
+      it(`Given a stored template of Network - - it is loaded`, () => {
 
-        loadDrawingBoardWithRecreateModeNetwork();
+        cy.loadDrawingBoardWithRecreateModeNetwork(templateWithNetworkSetup);
 
         // Then...
         cy.getElementByDataTestsId("node-SR-IOV Provider 2-1").should('be.visible');
@@ -261,11 +274,11 @@ describe('Drawing Board: Instantiation Templates', function () {
         assertThatBodyFromDeployRequestEqualsToTemplateFromBackEnd_network();
       });
 
-      it(`Given a stored template of Network - User can remove existing network`,  () => {
+      it(`Given a stored template of Network - User can remove existing network`, () => {
 
-        loadDrawingBoardWithRecreateModeNetwork();
+        cy.loadDrawingBoardWithRecreateModeNetwork(templateWithNetworkSetup);
 
-        nodeAction('node-01f4c475-3f89-4f00-a2f4-39a873dba0ae-SR-IOV Provider 2-1', 'Remove');
+        cy.nodeAction('node-01f4c475-3f89-4f00-a2f4-39a873dba0ae-SR-IOV Provider 2-1', 'Remove');
         let removed_network_Path = [
           "networks", "SR-IOV Provider 2-1",
         ];
@@ -280,6 +293,27 @@ describe('Drawing Board: Instantiation Templates', function () {
         ]);
       });
 
+      it('Given a template - User can add a new network', () => {
+
+        cy.loadDrawingBoardWithRecreateModeNetwork(templateWithNetworkSetup);
+
+        // add new node
+        addNewNode('node-SR-IOV Provider 2-1-add-btn')
+          .fillNetworkPopup()
+          .getDrawingBoardDeployBtn().click()
+          .wait('@expectedPostAsyncInstantiation').then(xhr => {
+          const networkRequest = bodyOf(xhr).networks['SR-IOV Provider 2-1_1'];
+
+          expect(networkRequest.action).equals("Create");
+          expect(networkRequest.rollbackOnFailure).equals("true");
+          expect(networkRequest.originalName).equals("SR-IOV Provider 2-1");
+          expect(networkRequest.productFamilyId).equals("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+          expect(networkRequest.lcpCloudRegionId).equals("hvf6");
+          expect(networkRequest.lineOfBusiness).equals("zzz1");
+          expect(networkRequest.platformName).equals("xxx1");
+          expect(networkRequest.tenantId).equals("229bcdc6eaeb4ca59d55221141d01f8e");
+        });
+      });
     });
   });
 });
@@ -303,58 +337,18 @@ const vnfPath = [
   "vnfs", "vProbe_NC_VNF 0"
 ];
 
-function loadDrawingBoardWithRecreateMode() {
-  loadDrawingBoardWithRecreateModeInternal(
-    '../../' + templateWithVnfSetup.instanceTemplateFile,
-    templateWithVnfSetup.serviceModelId,
-    templateWithVnfSetup.serviceModelFile);
-}
-
-function loadDrawingBoardWithRecreateModeNetwork() {
-  loadDrawingBoardWithRecreateModeInternal(
-    '../../' + templateWithNetworkSetup.instanceTemplateFile,
-    templateWithNetworkSetup.serviceModelId,
-    templateWithNetworkSetup.serviceModelFile);
-}
-
-function loadDrawingBoardWithRecreateModeInternal(instanceTemplate: string, serviceModelIdToLoad: any, serviceModel: string) {
-  const templateUuid = "46390edd-7100-46b2-9f18-419bd24fb60b";
-
-  const drawingBoardAction = `RECREATE`;
-  const templateTopologyEndpoint = "templateTopology";
-  cy.route(`**/rest/models/services/${serviceModelIdToLoad}`,
-    'fixture:' + serviceModel)
-    .as('serviceModel');
-
-  cy.route(`**/instantiationTemplates/${templateTopologyEndpoint}/${templateUuid}`,
-    'fixture:' + instanceTemplate)
-    .as('templateTopology');
-
-  // When...
-
-  cy.openIframe(`app/ui/#/servicePlanning/${drawingBoardAction}` +
-    `?jobId=${templateUuid}` +
-    `&serviceModelId=${serviceModelIdToLoad}`);
-
-  cy.wait('@serviceModel');
-  cy.wait('@templateTopology');
-}
+const vnfPath2 = [
+  "vnfs", "vProbe_NC_VNF 0_1"
+];
 
-function nodeAction(dataTestId: string, action: string, index ?: number) {
-  return cy.drawingBoardTreeOpenContextMenuByElementDataTestId(dataTestId, index)
-    .drawingBoardTreeClickOnContextMenuOptionByName(action)
-}
 
-function editNode(dataTestId: string, index ?: number) {
-  return nodeAction(dataTestId, 'Edit', index);
-}
 
 function addNewNode(dataTestId: string) {
   return cy.getElementByDataTestsId(dataTestId).click({force: true})
 }
 
 function removeVNFWithVFModules(dataTestId: string) {
-  return nodeAction(dataTestId, 'Remove')
+  return cy.nodeAction(dataTestId, 'Remove')
     .getTagElementContainsText('button', 'Remove VNF').click()
 }
 
@@ -427,6 +421,7 @@ function mockAsyncBulkResponse() {
     url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
     method: 'POST',
     status: 200,
-    response: "[]",
+    response: true,
   }).as("expectedPostAsyncInstantiation");
 }
+