1 ///<reference path="../../../node_modules/cypress/types/index.d.ts"/> / <reference types="Cypress" />
3 import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder";
4 import {AAISubDetailsModel} from "../../support/jsonBuilders/models/aaiSubDetails.model";
6 describe('Change management AKA VNF changes', function () {
8 function stubSubscriberDetails() {
9 let jsonBuilderAAISubDetailsModel: JsonBuilder<AAISubDetailsModel> = new JsonBuilder<AAISubDetailsModel>();
10 cy.readFile('cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json').then((res) => {
11 jsonBuilderAAISubDetailsModel.basicJson(
13 Cypress.config('baseUrl') + "/aai_sub_details/e433710f-9217-458d-a79d-1c7aff376d89**",
20 function openNewVnfChangeModal() {
21 cy.visit('/serviceModels.htm#/change-management');
22 cy.getElementByDataTestsId('create-new-change-management').click();
23 cy.getElementByDataTestsId('newChangeManagementForm');
26 function fillSubscriberAndServiceType() {
27 cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS');
28 cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA');
31 describe('DB workflows and nf-role optional search', function () {
32 let jsonBuilderVnfData: JsonBuilder<any> = new JsonBuilder<any>();
34 let aaiGetVNFDataUrl = Cypress.config('baseUrl') + "/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA";
35 //describe('Contact us', () => {
40 stubSubscriberDetails();
42 cy.route(`${Cypress.config('baseUrl')}/flags`,
44 "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true,
45 "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": true,
46 "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
50 cy.readFile('cypress/support/jsonBuilders/mocks/jsons/get_vnf_data.json').then((res) => {
51 jsonBuilderVnfData.basicJson(
53 aaiGetVNFDataUrl + '**',
59 openNewVnfChangeModal();
67 function fillCloudRegion() {
68 cy.selectDropdownOptionByText('cloudRegion', 'AAIAIC25 (AIC)');
71 function fillNfRole() {
72 cy.getElementByDataTestsId('vnfType').type('vMobileDNS');
75 it(`nf role input and cloud region input and search vnfs button should be disabled without subscriber and serviceType`, function () {
76 cy.get('#searchVNF').should('be.disabled');
77 cy.getElementByDataTestsId('cloudRegion').should('be.disabled');
78 cy.getElementByDataTestsId('vnfType').should('be.disabled')
81 it(`search vnfs without nf role and cloud region`, function () {
83 fillSubscriberAndServiceType();
85 cy.get('#searchVNF').click();
87 cy.wait('@aai_get_vnf_data')
88 .its('url').should('equal', aaiGetVNFDataUrl)
92 it(`search vnfs by nf role and cloud region`, function () {
94 fillSubscriberAndServiceType();
98 cy.get('#searchVNF').click();
100 cy.wait('@aai_get_vnf_data')
101 .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25&nfRole=vMobileDNS")
105 it(`search vnfs by cloud region`, function () {
107 fillSubscriberAndServiceType();
109 cy.get('#searchVNF').click();
111 cy.wait('@aai_get_vnf_data')
112 .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25")
115 it(`search vnfs by nf role`, function () {
117 fillSubscriberAndServiceType();
119 cy.get('#searchVNF').click();
121 cy.wait('@aai_get_vnf_data')
122 .its('url').should('equal', aaiGetVNFDataUrl + "?nfRole=vMobileDNS")
126 describe('SO workflows and nf-role selection from list', function () {
130 stubSubscriberDetails();
132 cy.route(`${Cypress.config('baseUrl')}/flags**`,
134 "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true,
135 "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": false,
136 "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
137 "FLAG_HANDLE_SO_WORKFLOWS": true,
138 "FLAG_DISABLE_HOMING": true,
139 "FLAG_ADD_MSO_TESTAPI_FIELD": true,
140 "FLAG_GUILIN_CHANGEMG_SUBMIT_TO_SO": true,
144 cy.route(`${Cypress.config('baseUrl')}/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA`,
145 'fixture:../support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json')
146 .as('aai_get_vnf_data');
148 cy.route(`${Cypress.config('baseUrl')}/rest/models/services?distributionStatus=DISTRIBUTED`,
149 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/list-services.json')
150 .as('list_services');
152 cy.route(`${Cypress.config('baseUrl')}/rest/models/services/74fa72dd-012b-49c3-800d-06b12bcaf1a0`,
153 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json')
154 .as('get_service_model');
156 cy.route('POST', `${Cypress.config('baseUrl')}/aai_get_version_by_invariant_id`,
160 "model-invariant-id": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
161 "model-type": "resource",
162 "resource-version": "1507747452923",
166 "model-version-id": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
167 "model-name": "092017_VSP_GINGERby11",
168 "model-version": "1.0",
169 "model-description": "092017_VSP_GINGERby11",
177 .as('aai_get_version_by_invariant_id');
179 openNewVnfChangeModal();
187 it(`vnf software upgrade: given vnf with matching workflow -- payload is as expected`, function () {
189 cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`,
191 "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
192 "workflowName": "inPlaceSoftwareUpdate",
193 "name": "VNF In Place Software Update",
195 "workflowInputParameters": [
197 "label": "New Software Version",
200 "soFieldName": "new_software_version",
201 "soPayloadLocation": "userParams",
206 .as('workflows_inPlaceSoftwareUpdate');
208 fillSubscriberAndServiceType();
212 cy.get('#workflow').select('VNF In Place Software Update');
214 cy.get('#internal-workflow-parameter-text-2-operations-timeout')
216 cy.get('#internal-workflow-parameter-text-3-existing-software-version')
218 cy.get('#internal-workflow-parameter-text-4-new-software-version')
221 cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`)
222 .as('apply_workflow');
224 cy.get('#submit').click();
226 cy.wait('@apply_workflow').then(xhr => {
227 cy.deepCompare(xhr.request.body, {
228 "requestType": "VNF In Place Software Update",
231 "vnfName": "zolson3amdns02test2",
232 "vnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
235 "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
236 "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
237 "modelName": "zolson3amdns02test2",
238 "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b"
240 "cloudConfiguration": {
241 "lcpCloudRegionId": "mdt1",
242 "tenantId": "88a6ca3ee0394ade9403f075db23167e"
246 "suppressRollback": false,
247 "requestorId": "us16807000"
249 "relatedInstanceList": [
252 "instanceId": "97315a05-e6f3-4c47-ae7e-d850c327aa08",
254 "modelType": "service",
255 "modelInvariantId": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d",
256 "modelVersionId": "74fa72dd-012b-49c3-800d-06b12bcaf1a0",
257 "modelName": "Dror_service1806_Macro1",
258 "modelVersion": "2.0"
263 "requestParameters": {
264 "payload": "{\"existing_software_version\":\"1.0\",\"new_software_version\":\"3.0\",\"operations_timeout\":\"1\"}"
273 it(`pnf software upgrade: given pnf with matching workflow -- payload is as expected`, function () {
275 cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`,
277 "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
278 "workflowName": "PNFSoftwareUpgrade",
279 "name": "PNF Software Upgrade",
281 "workflowInputParameters": [
283 "label": "Target Software Version",
286 "soFieldName": "targetSoftwareVersion",
287 "soPayloadLocation": "userParams",
292 .as('workflows_PNFSoftwareUpgrade');
294 fillSubscriberAndServiceType();
298 cy.get('#workflow').select('PNF Software Upgrade');
300 cy.get('#internal-workflow-parameter-text-6-target-software-version')
301 .type("demo-sw-ver2.0.0");
303 cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`)
304 .as('apply_workflow');
306 cy.get('#submit').click();
308 cy.wait('@apply_workflow').then(xhr => {
309 cy.deepCompare(xhr.request.body, {
310 "requestType": "PNF Software Upgrade",
313 "pnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
316 "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
317 "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
318 "modelName": "zolson3amdns02test2",
319 "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b"
321 "cloudConfiguration": {
322 "lcpCloudRegionId": "mdt1",
323 "tenantId": "88a6ca3ee0394ade9403f075db23167e"
327 "suppressRollback": false,
328 "requestorId": "us16807000"
330 "requestParameters": {
334 "value": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855"
338 "value": "zolson3amdns02test2"
341 "name": "targetSoftwareVersion",
342 "value": "demo-sw-ver2.0.0"
353 function selectNfRole() {
354 cy.get('#vnfType').select('vMobileDNS');
357 function selectVnf() {
358 cy.get('#fromVNFVersion').select('1.0');
360 cy.log("open the Available VNF list").get('#vnfName').click();
361 cy.get('li').contains('zolson3amdns02test2').click();
362 cy.log("collapse the Available VNF list").get('#vnfName').click();
365 function selectPnf() {
366 cy.get('#fromVNFVersion').select('1.0');
368 cy.log("open the Available VNF list").get('#vnfName').click();
369 cy.get('li').contains('zolson3amdns02test2').click();
370 cy.log("collapse the Available VNF list").get('#vnfName').click();