Add to VFM context menu action "Add pause upon completion".
[vid.git] / vid-webpack-master / cypress / integration / iFrames / pauseInstantiationOnVfModule.e2e.ts
1 ///<reference path="../../../node_modules/cypress/types/index.d.ts"/> / <reference types="Cypress" />
2
3 describe('Create Instance page: Pause after vfModule instantiation ', () => {
4
5   beforeEach(() => {
6     cy.clearSessionStorage();
7     cy.setTestApiParamToGR();
8     cy.initVidMock();
9     cy.permissionVidMock();
10     cy.login();
11
12   });
13
14   afterEach(() => {
15     cy.screenshot();
16   });
17
18   it(`Pause on VFModule instantiation: create two vfmodules and pause after a first vfmodule`, function () {
19     cy.readFile('cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json').then((flags) => {
20       cy.server()
21       .route({
22         method: 'GET',
23         delay: 0,
24         status: 200,
25         url: Cypress.config('baseUrl') + "/flags**",
26         response: flags
27       }).as('initFlags');
28     });
29
30     cy.readFile('cypress/support/jsonBuilders/mocks/jsons/reduxModelOneVnfAndTwoVfmodulesInstanceOneVnf.json').then((reduxState) => {
31
32       cy.setReduxState(<any>reduxState);
33       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f3862254-8df2-4a0a-8137-0a9fe985860c');
34       const vnfName = "vOCG_1804_VF 0";
35       let vfModulesNames: Array<string> = [
36         'vocg_1804_vf0..Vocg1804Vf..base_ocg..module-0',
37         'vocg_1804_vf0..Vocg1804Vf..ocgapp_004..module-11'
38       ];
39       const uuidAndVfModuleNames: Array<string> = [
40         '815db6e5-bdfd-4cb6-9575-82c36df8747a-vocg_1804_vf0..Vocg1804Vf..base_ocg..module-0',
41         'da10c7fe-cf81-441c-9694-4e9ddf2054d8-vocg_1804_vf0..Vocg1804Vf..ocgapp_004..module-11'
42       ];
43
44       addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName, vfModulesNames[0], uuidAndVfModuleNames[0]);
45       addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName, vfModulesNames[1], uuidAndVfModuleNames[1]);
46       pauseOnVfModuleInstantiation('node-' + uuidAndVfModuleNames[1], 0)
47       mockAsyncBulkResponse();
48       cy.getDrawingBoardDeployBtn().click();
49
50       cy.wait('@expectedPostAsyncInstantiation')
51       .then(xhr => {
52         let vfModules = bodyOf(xhr).vnfs['vOCG_1804_VF 0'].vfModules;
53
54         let unPausedVModule = vfModules[vfModulesNames[0]];
55         const unPausedVModuleObject = unPausedVModule[Object.keys(unPausedVModule)[0]];
56         expect(unPausedVModuleObject.pauseInstantiation).equals(undefined);
57
58         let pausedVModule = vfModules[vfModulesNames[1]];
59         const pausedVModuleObject = pausedVModule[Object.keys(pausedVModule)[0]];
60         expect(pausedVModuleObject.pauseInstantiation).equals("afterCompletion");
61       });
62     });
63   });
64
65   function addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName: string, vfModulesName: string, uuidAndVfModuleName: string): Chainable<any> {
66     return cy.getElementByDataTestsId('node-' + vnfName).click({force: true}).then(() => {
67       cy.getElementByDataTestsId('node-' + vfModulesName + '-add-btn').click({force: true}).then(() => {
68         cy.getElementByDataTestsId('node-' + uuidAndVfModuleName + '-menu-btn')
69         .click({force: true}).then(() => {
70           cy.getElementByDataTestsId('context-menu-edit').click().then(() => {
71             cy.getElementByDataTestsId('form-set').click();
72           })
73         })
74       })
75     })
76   }
77
78   function bodyOf(xhr: Cypress.WaitXHR) {
79     return JSON.parse(JSON.stringify(xhr.request.body));
80   }
81
82   function mockAsyncBulkResponse() {
83     cy.server().route({
84       url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
85       method: 'POST',
86       status: 200,
87       response: "[]",
88     }).as("expectedPostAsyncInstantiation");
89   }
90
91
92   function pauseOnVfModuleInstantiation(nodeId: string, index: number) {
93     cy.drawingBoardTreeOpenContextMenuByElementDataTestId(`${nodeId}`, index)
94     .getElementByDataTestsId('context-menu-pause').click({force: true});
95   }
96
97 });