/// / import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder"; import {AAISubDetailsModel} from "../../support/jsonBuilders/models/aaiSubDetails.model"; describe('Change management AKA VNF changes', function () { function stubSubscriberDetails() { let jsonBuilderAAISubDetailsModel: JsonBuilder = new JsonBuilder(); cy.readFile('cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json').then((res) => { jsonBuilderAAISubDetailsModel.basicJson( res, Cypress.config('baseUrl') + "/aai_sub_details/e433710f-9217-458d-a79d-1c7aff376d89**", 200, 0, "aai-sub-details") }); } function openNewVnfChangeModal() { cy.visit('/serviceModels.htm#/change-management'); cy.getElementByDataTestsId('create-new-change-management').click(); cy.getElementByDataTestsId('newChangeManagementForm'); } function fillSubscriberAndServiceType() { cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS'); cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA'); } describe('DB workflows and nf-role optional search', function () { let jsonBuilderVnfData: JsonBuilder = new JsonBuilder(); let aaiGetVNFDataUrl = Cypress.config('baseUrl') + "/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA"; //describe('Contact us', () => { beforeEach(() => { cy.login(); cy.initAAIMock(); stubSubscriberDetails(); cy.route(`${Cypress.config('baseUrl')}/flags`, { "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true, "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": true, "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, }) .as('initFlags'); cy.readFile('cypress/support/jsonBuilders/mocks/jsons/get_vnf_data.json').then((res) => { jsonBuilderVnfData.basicJson( res, aaiGetVNFDataUrl + '**', 200, 0, "aai_get_vnf_data") }); openNewVnfChangeModal(); }); afterEach(() => { cy.screenshot(); }); function fillCloudRegion() { cy.selectDropdownOptionByText('cloudRegion', 'AAIAIC25 (AIC)'); } function fillNfRole() { cy.getElementByDataTestsId('vnfType').type('vMobileDNS'); } it(`nf role input and cloud region input and search vnfs button should be disabled without subscriber and serviceType`, function () { cy.get('#searchVNF').should('be.disabled'); cy.getElementByDataTestsId('cloudRegion').should('be.disabled'); cy.getElementByDataTestsId('vnfType').should('be.disabled') }); it(`search vnfs without nf role and cloud region`, function () { fillSubscriberAndServiceType(); cy.get('#searchVNF').click(); cy.wait('@aai_get_vnf_data') .its('url').should('equal', aaiGetVNFDataUrl) }); it(`search vnfs by nf role and cloud region`, function () { fillSubscriberAndServiceType(); fillNfRole(); fillCloudRegion(); cy.get('#searchVNF').click(); cy.wait('@aai_get_vnf_data') .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25&nfRole=vMobileDNS") }); it(`search vnfs by cloud region`, function () { fillSubscriberAndServiceType(); fillCloudRegion(); cy.get('#searchVNF').click(); cy.wait('@aai_get_vnf_data') .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25") }); it(`search vnfs by nf role`, function () { fillSubscriberAndServiceType(); fillNfRole(); cy.get('#searchVNF').click(); cy.wait('@aai_get_vnf_data') .its('url').should('equal', aaiGetVNFDataUrl + "?nfRole=vMobileDNS") }); }); describe('SO workflows and nf-role selection from list', function () { beforeEach(() => { cy.login(); cy.initAAIMock(); stubSubscriberDetails(); cy.route(`${Cypress.config('baseUrl')}/flags**`, { "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true, "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": false, "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, "FLAG_HANDLE_SO_WORKFLOWS": true, "FLAG_DISABLE_HOMING": true, "FLAG_ADD_MSO_TESTAPI_FIELD": true, "FLAG_GUILIN_CHANGEMG_SUBMIT_TO_SO": true, }) .as('initFlags'); cy.route(`${Cypress.config('baseUrl')}/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA`, 'fixture:../support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json') .as('aai_get_vnf_data'); cy.route(`${Cypress.config('baseUrl')}/rest/models/services?distributionStatus=DISTRIBUTED`, 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/list-services.json') .as('list_services'); cy.route(`${Cypress.config('baseUrl')}/rest/models/services/74fa72dd-012b-49c3-800d-06b12bcaf1a0`, 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json') .as('get_service_model'); cy.route('POST', `${Cypress.config('baseUrl')}/aai_get_version_by_invariant_id`, { "model": [ { "model-invariant-id": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92", "model-type": "resource", "resource-version": "1507747452923", "model-vers": { "model-ver": [ { "model-version-id": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d", "model-name": "092017_VSP_GINGERby11", "model-version": "1.0", "model-description": "092017_VSP_GINGERby11", } ] } }, ] } ) .as('aai_get_version_by_invariant_id'); openNewVnfChangeModal(); }); afterEach(() => { cy.screenshot(); }); it(`vnf software upgrade: given vnf with matching workflow -- payload is as expected`, function () { cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`, [{ "id": "ab6478e4-ea33-3346-ac12-ab121484a333", "workflowName": "inPlaceSoftwareUpdate", "name": "VNF In Place Software Update", "source": "native", "workflowInputParameters": [ { "label": "New Software Version", "inputType": "text", "required": true, "soFieldName": "new_software_version", "soPayloadLocation": "userParams", "validation": [] } ] }]) .as('workflows_inPlaceSoftwareUpdate'); fillSubscriberAndServiceType(); selectNfRole(); selectVnf(); cy.get('#workflow').select('VNF In Place Software Update'); cy.get('#internal-workflow-parameter-text-2-operations-timeout') .type("1"); cy.get('#internal-workflow-parameter-text-3-existing-software-version') .type("1.0"); cy.get('#internal-workflow-parameter-text-4-new-software-version') .type("3.0"); cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`) .as('apply_workflow'); cy.get('#submit').click(); cy.wait('@apply_workflow').then(xhr => { cy.deepCompare(xhr.request.body, { "requestType": "VNF In Place Software Update", "requestDetails": [ { "vnfName": "zolson3amdns02test2", "vnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855", "modelInfo": { "modelType": "vnf", "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92", "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d", "modelName": "zolson3amdns02test2", "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b" }, "cloudConfiguration": { "lcpCloudRegionId": "mdt1", "tenantId": "88a6ca3ee0394ade9403f075db23167e" }, "requestInfo": { "source": "VID", "suppressRollback": false, "requestorId": "us16807000" }, "relatedInstanceList": [ { "relatedInstance": { "instanceId": "97315a05-e6f3-4c47-ae7e-d850c327aa08", "modelInfo": { "modelType": "service", "modelInvariantId": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d", "modelVersionId": "74fa72dd-012b-49c3-800d-06b12bcaf1a0", "modelName": "Dror_service1806_Macro1", "modelVersion": "2.0" } } } ], "requestParameters": { "payload": "{\"existing_software_version\":\"1.0\",\"new_software_version\":\"3.0\",\"operations_timeout\":\"1\"}" } } ] }); }); }); it(`pnf software upgrade: given pnf with matching workflow -- payload is as expected`, function () { cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`, [{ "id": "ab6478e4-ea33-3346-ac12-ab121484a333", "workflowName": "PNFSoftwareUpgrade", "name": "PNF Software Upgrade", "source": "native", "workflowInputParameters": [ { "label": "Target Software Version", "inputType": "text", "required": true, "soFieldName": "targetSoftwareVersion", "soPayloadLocation": "userParams", "validation": [] } ] }]) .as('workflows_PNFSoftwareUpgrade'); fillSubscriberAndServiceType(); selectNfRole(); selectPnf(); cy.get('#workflow').select('PNF Software Upgrade'); cy.get('#internal-workflow-parameter-text-6-target-software-version') .type("demo-sw-ver2.0.0"); cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`) .as('apply_workflow'); cy.get('#submit').click(); cy.wait('@apply_workflow').then(xhr => { cy.deepCompare(xhr.request.body, { "requestType": "PNF Software Upgrade", "requestDetails": [ { "pnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855", "modelInfo": { "modelType": "pnf", "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92", "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d", "modelName": "zolson3amdns02test2", "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b" }, "cloudConfiguration": { "lcpCloudRegionId": "mdt1", "tenantId": "88a6ca3ee0394ade9403f075db23167e" }, "requestInfo": { "source": "VID", "suppressRollback": false, "requestorId": "us16807000" }, "requestParameters": { "userParams": [ { "name": "pnfId", "value": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855" }, { "name": "pnfName", "value": "zolson3amdns02test2" }, { "name": "targetSoftwareVersion", "value": "demo-sw-ver2.0.0" } ] } } ] }); }); }); function selectNfRole() { cy.get('#vnfType').select('vMobileDNS'); } function selectVnf() { cy.get('#fromVNFVersion').select('1.0'); cy.log("open the Available VNF list").get('#vnfName').click(); cy.get('li').contains('zolson3amdns02test2').click(); cy.log("collapse the Available VNF list").get('#vnfName').click(); } function selectPnf() { cy.get('#fromVNFVersion').select('1.0'); cy.log("open the Available VNF list").get('#vnfName').click(); cy.get('li').contains('zolson3amdns02test2').click(); cy.log("collapse the Available VNF list").get('#vnfName').click(); } }); });