Fix for Penetration test _ Session and cookie management
[vid.git] / vid-webpack-master / cypress / integration / iFrames / viewEdit.e2e.ts
1 ///<reference path="../../../node_modules/cypress/types/index.d.ts"/> / <reference types="Cypress" />
2 import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder';
3 import {PnfModel} from '../../support/jsonBuilders/models/pnf.model';
4 import {ServiceModel} from '../../support/jsonBuilders/models/service.model';
5 import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model';
6 import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model';
7
8
9 describe('View Edit Page', function () {
10   describe('basic UI tests', () => {
11     let jsonBuilderAAIService : JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
12     let commonUuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
13     let serviceInvariantId = "d27e42cf-087e-4d31-88ac-6c4b7585f800";
14
15     let jsonBuilderAAISubViewEditModel: JsonBuilder<AAISubViewEditModel> = new JsonBuilder<AAISubViewEditModel>();
16     let jsonBuilderPNF: JsonBuilder<PnfModel> = new JsonBuilder<PnfModel>();
17     let jsonBuilderAaiServiceInstances: JsonBuilder<AaiServiceInstancesModel> = new JsonBuilder<AaiServiceInstancesModel>();
18     let jsonBuilderEmpty: JsonBuilder<Object> = new JsonBuilder<Object>();
19     beforeEach(() => {
20       cy.clearSessionStorage();
21       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => {
22         jsonBuilderAAIService.basicJson(
23           res,
24           Cypress.config('baseUrl') + "/rest/models/services/" + commonUuid,
25           200, 0,
26           "service-complexService",
27           changeServiceModel)
28       });
29
30       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json').then((res) => {
31         jsonBuilderAAIService.basicJson(
32           res,
33           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671234",
34           200, 0,
35           "service-FabricConfig", changeFabric)
36       });
37
38       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json').then((res) => {
39         jsonBuilderAAIService.basicJson(
40           res,
41           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d675678",
42           200, 0,
43           "service-FabricConfig", changeFabric)
44       });
45
46       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json').then((res) => {
47         jsonBuilderAAIService.basicJson(
48           res,
49           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d679000",
50           200, 0,
51           "service-FabricConfig", changeFabric)
52       });
53
54       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json').then((res) => {
55         jsonBuilderAAIService.basicJson(
56           res,
57           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671000",
58           200, 0,
59           "service-FabricConfig", changeFabric)
60       });
61
62       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json').then((res) => {
63         jsonBuilderAAISubViewEditModel.basicJson(
64           res,
65           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d",
66           200,
67           0,
68           "aai-sub-view-edit")
69       });
70
71       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json').then((res) => {
72         jsonBuilderAAISubViewEditModel.basicJson(
73           res,
74           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61234",
75           200,
76           0,
77           "aai-sub-view-edit")
78       });
79
80       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json').then((res) => {
81         jsonBuilderAAISubViewEditModel.basicJson(
82           res,
83           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f65678",
84           200,
85           0,
86           "aai-sub-view-edit")
87       });
88
89       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json').then((res) => {
90         jsonBuilderAAISubViewEditModel.basicJson(
91           res,
92           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f69000",
93           200,
94           0,
95           "aai-sub-view-edit")
96       });
97
98       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json').then((res) => {
99         jsonBuilderAAISubViewEditModel.basicJson(
100           res,
101           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61000",
102           200,
103           0,
104           "aai-sub-view-edit")
105       });
106
107       cy.initGetAAISubDetails();
108
109       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstancePnfs.json').then((res) => {
110         jsonBuilderPNF.basicJson(
111           res,
112           Cypress.config('baseUrl') + "/aai_get_service_instance_pnfs/**",
113           200,
114           0,
115           "aai-get-service-instance-pnfs")
116       });
117
118       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json').then((res) => {
119         jsonBuilderAaiServiceInstances.basicJson(
120           res,
121           Cypress.config('baseUrl') + "/search_service_instances**",
122           200,
123           0,
124           "aai-get-service-instances")
125       });
126
127       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
128         jsonBuilderEmpty.basicJson(
129           res,
130           Cypress.config('baseUrl') + "/aai_getPortMirroringConfigsData**",
131           200,
132           0,
133           "aai_getPortMirroringConfigsDate - empty response")
134       });
135
136       cy.readFile('cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
137         jsonBuilderEmpty.basicJson(
138           res,
139           Cypress.config('baseUrl') + "/aai_getPortMirroringSourcePorts**",
140           200,
141           0,
142           "aai_getPortMirroringSourcePorts - empty response")
143       });
144       cy.initVidMock();
145       cy.mockLatestVersionForService(commonUuid, serviceInvariantId);
146       cy.initAAIServices();
147       cy.setReduxState();
148       cy.permissionVidMock();
149       cy.login();
150     });
151
152     afterEach(() => {
153       cy.screenshot();
154     });
155
156     it(`should display service model name and version on each info form`, function () {
157       let typesToIncludeModel:Array<string> = ['service', 'vnf', 'vfmodule', 'volume-group', 'network'];
158       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
159       cy.wait('@service-complexService');
160       cy.wait('@aai_getPortMirroringConfigsDate - empty response');
161       cy.get('div').contains('VOLUME GROUP: f'); // waits for the view/edit to be ready after ports' redraw
162       typesToIncludeModel.forEach((type) => {
163         cy.get('.' + type + '-info').click({force: true});
164         cy.getElementByDataTestsId("Model Version").contains('1.0');
165         cy.getElementByDataTestsId("Model Name").contains('vidmacrofalsenaming');
166         cy.getElementByDataTestsId("detailsCloseBtn").click();
167       });
168     });
169
170     it(`when using direct url should select elements in productFamily dropdown `, function () {
171       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
172       cy.wait('@service-complexService');
173       cy.wait('@aai_getPortMirroringConfigsDate - empty response');
174       cy.wait('@initAAIServices');
175       cy.getElementByDataTestsId('addNetworkButton').click();
176       cy.getElementByDataTestsId('addNetworkOption-MULTI_PROVIDER_PORT_GROUP 0').click();
177       cy.getElementByDataTestsId('productFamily').select('WILKINS');
178     });
179
180
181
182     it(`Check fabric configuration service with some configuration with diff orchStatus`, function () {
183       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61234&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
184       cy.wait('@service-FabricConfig');
185       cy.get('.error-msg').should("be.visible").should('contain','Activate fabric configuration button is not available as some of the configuration objects are not in Assigned status. Check MSO logs for the reasons for this abnormal case.');
186       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('have.attr', 'disabled');
187       cy.getElementByDataTestsId("activateButton").should("not.be.visible");
188     });
189
190     it(`Check fabric configuration service with active status`, function () {
191       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
192       cy.wait('@service-FabricConfig');
193       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
194       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
195       cy.getElementByDataTestsId("deactivateButton").should("be.visible");
196     });
197
198     it(`Check fabric configuration service with created status`, function () {
199       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f69000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d679000&isPermitted=true');
200       cy.wait('@service-FabricConfig');
201       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
202       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
203       cy.getElementByDataTestsId("deactivateButton").should("be.visible");
204     });
205
206     it(`Check fabric configuration service with pendingdeLete status`, function () {
207       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671000&isPermitted=true');
208       cy.wait('@service-FabricConfig');
209       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
210       cy.getElementByDataTestsId("activateButton").should('not.have.attr', 'disabled');
211       cy.getElementByDataTestsId("deactivateButton").should('have.attr', 'disabled');
212     });
213
214   });
215
216   function changeFabric(serviceModel: ServiceModel) {
217     serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d671234";
218     return serviceModel;
219   }
220
221   function changeServiceModel(serviceModel: ServiceModel) {
222     serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
223     return serviceModel;
224   }
225 });