blob: 26d206df3c074fb0f7679865b8e71fa5456a0870 [file] [log] [blame]
Ittay Stern6f900cc2018-08-29 17:01:32 +03001///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
2/// <reference types="Cypress" />
3import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder';
4import {ServiceModel} from '../../support/jsonBuilders/models/service.model';
5import {AsyncInstantiationModel} from "../../support/jsonBuilders/models/asyncInstantiation.model";
6
Einat Vinouzee1f79742019-08-27 16:01:01 +03007var jsonBuilderAndMock: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
8var jsonBuilderInstantiationBuilder: JsonBuilder<AsyncInstantiationModel> = new JsonBuilder<AsyncInstantiationModel>();
9const SERVICE_MODEL_ID: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44';
10const SERVICE_INVARIANT_ID: string = "d27e42cf-087e-4d31-88ac-6c4b7585f800";
Ittay Stern6f900cc2018-08-29 17:01:32 +030011
Einat Vinouzee1f79742019-08-27 16:01:01 +030012export const initServicePlanning = function (viewOrEdit: string, customModelFilePath?: string ){
13 const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
14 const SERVICE_TYPE: string = "TYLER SILVIA";
15 const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
16 if (Cypress._.isNil(customModelFilePath)){
17 customModelFilePath = '../vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json';
18 }
19
20 cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceModel.json').then((res) => {
21 jsonBuilderAndMock.basicJson(
22 res,
23 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d674c44",
24 200,
25 0,
26 "ServiceTreeWithMultipleChildren_serviceModel",
27 )
28 });
29
30 cy.readFile(customModelFilePath).then((res) => {
31 jsonBuilderAndMock.basicJson(
32 res,
33 Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb",
34 200, 0,
35 "ServiceTreeWithMultipleChildren_serviceInstance",
36 );
37 });
38 cy.openIframe(`app/ui/#/servicePlanning/${viewOrEdit}?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
39}
40
41describe('View only drawing board', function () {
42 const _VIEW = "VIEW";
Ittay Stern6f900cc2018-08-29 17:01:32 +030043
44 beforeEach(() => {
45 cy.window().then((win) => {
46 win.sessionStorage.clear();
47 cy.preventErrorsOnLoading();
48 cy.initAAIMock();
Ittay Stern0b2078f2019-10-23 17:47:34 +030049 cy.initVidMock();
50 cy.mockLatestVersionForService(SERVICE_MODEL_ID, SERVICE_INVARIANT_ID);
Ittay Stern6f900cc2018-08-29 17:01:32 +030051 cy.initZones();
52 cy.permissionVidMock();
53 cy.login();
54 });
55 });
56
57 afterEach(() => {
58 cy.screenshot();
59 });
60
61 it('error should display on api error', function () {
62 const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
63 const SERVICE_TYPE: string = "TYLER SILVIA";
64 const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
65 const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
66
Ittay Stern607ea3d2019-10-23 17:10:52 +030067 cy.readFile('cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => {
Ittay Stern6f900cc2018-08-29 17:01:32 +030068 jsonBuilderInstantiationBuilder.basicJson(
69 res,
70 Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450",
71 500,
72 0,
73 "error 500 getServiceInstanceTopology"
74 );
75
76 cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
77
78 cy.get('div.title')
79 .contains('Server not available');
80
81 });
82 });
83
84 it(`when open service planning in view mode service instance is shown as expected`, function () {
85 const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
86 const SERVICE_TYPE: string = "TYLER SILVIA";
87 const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
88 const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
89
Ittay Stern607ea3d2019-10-23 17:10:52 +030090 cy.readFile('cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => {
Ittay Stern6f900cc2018-08-29 17:01:32 +030091 jsonBuilderAndMock.basicJson(
92 res,
93 Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450",
94 200,
95 0,
96 "ecompNamingFalseModel",
97 )
98 });
99
100 cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => {
101 jsonBuilderAndMock.basicJson(
102 res,
103 Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb",
104 200, 0,
105 "initServiceInstanceTopology",
106 )
107 });
108
109 cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
110 //cy.visit("welcome.htm"); //relaod page to not break the following tests
111
112 //testing left side
Ittay Sternf7926712019-07-07 19:23:03 +0300113 cy.getElementByDataTestsId('node-2017-388_PASQUALE-vPE 1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
114 cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0').click({force: true});
115 cy.getElementByDataTestsId('node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
Ittay Stern6f900cc2018-08-29 17:01:32 +0300116
117 //testing right side
Ittay Sternf7926712019-07-07 19:23:03 +0300118 cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
119 cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').click({force: true});
120 cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').eq(0).find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
Ittay Stern6f900cc2018-08-29 17:01:32 +0300121
122 //check vnf node tree sub header
Ittay Sternf7926712019-07-07 19:23:03 +0300123 cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-orchStatus']").should('have.text', 'Created');
124 cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-provStatus']").should('have.text', '');
125 cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-inMaint']").should('not.exist');
Ittay Stern6f900cc2018-08-29 17:01:32 +0300126
127 //check vf Module node tree sub header
Ittay Sternf7926712019-07-07 19:23:03 +0300128 cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-provStatus']").eq(0).should('have.text', 'Prov Status');
129 cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-orchStatus']").eq(0).should('have.text', 'Active');
130 cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-inMaint']").eq(0).should('have.text', '');
Ittay Stern6f900cc2018-08-29 17:01:32 +0300131
132 cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:');
133 cy.getElementByDataTestsId("serviceName").should('have.text', 'mCaNkinstancename');
134 cy.getElementByDataTestsId("orchStatusLabel").should('have.text', 'Orch Status:');
135 cy.getElementByDataTestsId("orchStatusValue").should('have.text', 'Active');
136 cy.getElementByDataTestsId("quantityLabel").should('be.visible');
137 cy.getElementByDataTestsId("servicesQuantity").should('have.text', ' 1 ');
138
139
140 });
Ittay Stern6f900cc2018-08-29 17:01:32 +0300141
Ittay Sternf7926712019-07-07 19:23:03 +0300142 it('check component info for 2 trees for vnf, vf-module, and network', function(){
Einat Vinouzee1f79742019-08-27 16:01:01 +0300143 initServicePlanning(_VIEW);
Ittay Sternf7926712019-07-07 19:23:03 +0300144 testComponentInfoForVNF();
145 testComponentInfoForVFMODULE();
146 testComponentInfoForNetwork();
147 });
148
149 it(`when open service planning in view mode service instance is shown as expected - e2e with API's ServiceTreeWithMultipleChildren`, function () {
Einat Vinouzee1f79742019-08-27 16:01:01 +0300150 initServicePlanning(_VIEW);
Ittay Stern6f900cc2018-08-29 17:01:32 +0300151 /*
152 0. title area -> generic stuff
153 instance name
154 orch status
155 service name
156 */
157 cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:');
158 cy.getElementByDataTestsId("orchStatusLabel").should('have.text', 'Orch Status:');
159 cy.getElementByDataTestsId("quantityLabel").should('be.visible');
160 cy.getElementByDataTestsId("servicesQuantity").should('have.text', ' 1 ');
161
162 // specific
163 cy.getElementByDataTestsId("serviceName").should('have.text', 'SERVICE_INSTANCE_NAME');
164 cy.getElementByDataTestsId("orchStatusValue").should('have.text', 'GARBAGE DATA');
165 cy.get('span#service-model-name').should('have.text', 'ComplexService');
166
167 // test component info of service-level
168 let labelsAndValues = [
Ittay Sternf7926712019-07-07 19:23:03 +0300169 ['Model version', '1.0'],
Ittay Stern6f900cc2018-08-29 17:01:32 +0300170 ['Instance ID', 'service-instance-id'],
Ittay Sternf7926712019-07-07 19:23:03 +0300171 ['Service type', 'service-instance-type'],
Ittay Stern6f900cc2018-08-29 17:01:32 +0300172 ];
173 cy.assertComponentInfoTitleLabelsAndValues('Service Instance INFO', labelsAndValues);
174
175
176 // expand all
177 cy.get('available-models-tree').find('.toggle-children').click({ multiple: true });
178
179 /*
180 1. Left tree -> VNF with 3 vf modules
181 Network
182 Configuration
183 */
184 const leftShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
Ittay Sternf7926712019-07-07 19:23:03 +0300185 'node-VF_vGeraldine 0': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300186 'node-type-indicator': 'VNF',
Ittay Sternf7926712019-07-07 19:23:03 +0300187 'node-name': 'VF_vGeraldine 0',
Ittay Stern6f900cc2018-08-29 17:01:32 +0300188 'numberButton': '1',
189 },
Ittay Sternf7926712019-07-07 19:23:03 +0300190 'node-vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300191 'node-type-indicator': 'M',
Ittay Sternf7926712019-07-07 19:23:03 +0300192 'node-name': 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0',
Ittay Stern6f900cc2018-08-29 17:01:32 +0300193 'numberButton': '',
194 },
Ittay Sternf7926712019-07-07 19:23:03 +0300195 'node-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300196 'node-type-indicator': 'M',
Ittay Sternf7926712019-07-07 19:23:03 +0300197 'node-name': 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1',
Ittay Stern6f900cc2018-08-29 17:01:32 +0300198 'numberButton': '1',
199 },
Ittay Sternf7926712019-07-07 19:23:03 +0300200 'node-vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300201 'node-type-indicator': 'M',
Ittay Sternf7926712019-07-07 19:23:03 +0300202 'node-name': 'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2',
Ittay Stern6f900cc2018-08-29 17:01:32 +0300203 'numberButton': '',
204 },
205 'node-ExtVL 0': {
206 'node-type-indicator': 'N',
207 'node-name': 'ExtVL 0',
208 'numberButton': '2',
209 },
210 'node-Port Mirroring Configuration By Policy 0': {
211 'node-type-indicator': 'C',
212 'node-name': 'Port Mirroring Configuration By Policy 0',
213 'numberButton': '',
214 },
215 };
216
217 for (let node in leftShouldHaves) {
218 for (let span in leftShouldHaves[node]) {
219 const expected = leftShouldHaves[node][span];
220 cy.getElementByDataTestsId(node).find(`[data-tests-id='${span}']`).should(expected ? 'have.text' : 'not.exist', expected);
221 }
222 }
223
224 /*
225 2. Right tree -> VNF with 2 vf modules
226 2 networks
227 IGNORE, don't check: first node, which have no Service connection
228 */
229 const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
Ittay Sternf7926712019-07-07 19:23:03 +0300230 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0:0': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300231 'node-type-indicator': 'VNF',
232 'node-name': 'VNF2_INSTANCE_NAME',
233 'status-property-orchStatus': '',
234 'status-property-provStatus': '',
235 'status-property-inMaint': '',
236 },
237 'node-undefined-dc229cd8-c132-4455-8517-5c1787c18b14:0': {
238 'node-type-indicator': 'M',
239 'node-name': 'ss820f_0918_base',
240 'status-property-orchStatus': 'Assigned',
241 'status-property-provStatus': '',
242 },
Ittay Sternf7926712019-07-07 19:23:03 +0300243 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:0': {
Ittay Stern6f900cc2018-08-29 17:01:32 +0300244 'node-type-indicator': 'M',
245 'node-name': 'ss820f_0918_db',
246 'status-property-orchStatus': 'deleted',
247 'status-property-provStatus': '',
248 'status-property-inMaint': '',
249 },
250 'node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0:0': {
251 'node-type-indicator': 'N',
252 'node-name': 'NETWORK3_INSTANCE_NAME',
253 'status-property-orchStatus': 'Assigned',
254 'status-property-provStatus': 'nvtprov',
255 },
256 'node-ddc3f20c-08b5-40fd-af72-c6d14636b986-ExtVL 0:1': {
257 'node-type-indicator': 'N',
258 'node-name': 'NETWORK4_INSTANCE_NAME',
259 'status-property-orchStatus': 'Created',
260 'status-property-provStatus': 'preprov',
261 },
262 };
263
264 for (let node in rightShouldHaves) {
265 var [nodeName, nodeEq] = node.split(":");
266 for (let span in rightShouldHaves[node]) {
267 cy.getElementByDataTestsId(nodeName).eq(+nodeEq).find(`[data-tests-id='${span}']`).should('have.text', rightShouldHaves[node][span]);
268 }
269 }
270
271 /*
272 3. Left to right connections ->
273 vnf: # of instances = 1, click -> vnf selected
274 vf module1: # of instances = 1, click -> 1 vfmodule "ss820f_0918_db" selected
275 vf module2: # of instances = 0, click -> nothing
276 vf module3: # of instances = 0, click -> nothing
277 network: # of instances = 2, click -> 2 networks selected
278 configuration: # of instances = 0, click -> nothing
279 */
280 const leftShouldHighlight: { [text: string]: string[] } = {
Ittay Sternf7926712019-07-07 19:23:03 +0300281 'VF_vGeraldine 0': ['VNF2_INSTANCE_NAME'],
282 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': [],
283 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': ['ss820f_0918_db'],
284 'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': [],
Ittay Stern6f900cc2018-08-29 17:01:32 +0300285 'ExtVL 0': ['NETWORK3_INSTANCE_NAME', 'NETWORK4_INSTANCE_NAME'],
286 'Port Mirroring Configuration By Policy 0': [],
287 };
288
289 for (let text in leftShouldHighlight) {
290 cy.get('available-models-tree').contains(text).click();
291
292 cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', text + leftShouldHighlight[text].join(''));
293 }
294
295 /*
296 4. Right to left connections ->
297 vnf: click -> vnf selected
298 vf module1: click -> nothing
299 vf module2: click -> vemme0 selected
300 network1: click -> network selected
301 network2: click -> network selected
302 */
303 const rightShouldHighlight: { [text: string]: string[] } = {
Ittay Sternf7926712019-07-07 19:23:03 +0300304 'VNF2_INSTANCE_NAME': ['VF_vGeraldine 0'],
Ittay Stern6f900cc2018-08-29 17:01:32 +0300305 'ss820f_0918_base': [],
Ittay Sternf7926712019-07-07 19:23:03 +0300306 'ss820f_0918_db': ['vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1'],
Ittay Stern6f900cc2018-08-29 17:01:32 +0300307 'NETWORK3_INSTANCE_NAME': ['ExtVL 0'],
308 'NETWORK4_INSTANCE_NAME': ['ExtVL 0'],
309 };
310
311 for (let node in rightShouldHighlight) {
312 cy.get('drawing-board-tree').contains(node).click();
313 cy.get('.node-content-wrapper-active').find(`[data-tests-id='node-name']`).should('have.text', rightShouldHighlight[node].join('') + node);
314 }
315 cy.getElementByDataTestsId('isViewOnly-status-test').contains('VIEW ONLY');
316
317
318 /*
319 5. Click outside should remove highlight from all trees.
320 */
321
322 cy.clickOutside('search-left-tree-input', ()=>{
323 cy.get('.node-content-wrapper-active.node-content-wrapper-focused').should('have.length', 2)
324 }, ()=>{
325 cy.get('.node-content-wrapper-active.node-content-wrapper-focused').should('have.length', 0);
326 });
327
328
329 });
Ittay Sternf7926712019-07-07 19:23:03 +0300330
331 function testComponentInfoForVNF(){
332 const labelsAndValuesForModel = [
333 ['Model version', '2.0'],
334 ['Model customization ID', '91415b44-753d-494c-926a-456a9172bbb9'],
335 ['Min instances', '0'],
336 ['Max instances', '1']
337 ];
338 const extraLabelsAndValuesForInstance = [['Instance type', 'VNF2_INSTANCE_TYPE'],['In maintenance','true'], ['Instance ID', 'VNF2_INSTANCE_ID']];
339 testComponentInfoByType('node-VF_vGeraldine 0', labelsAndValuesForModel,'VNF INFO',
340 'VNF2_INSTANCE_NAME', extraLabelsAndValuesForInstance,'VNF Instance INFO');
341
342 }
343
344 function testComponentInfoForVFMODULE(){
345 const labelsAndValuesForModel = [
346 ['Model version', '2'],
347 ['Model customization ID', '55b1be94-671a-403e-a26c-667e9c47d091'],
348 ['Base module', 'false'],
349 ['Min instances', '0'],
350 ['Initial instances count', '0']
351 ];
352 const extraLabelsAndValuesForInstance = [['In maintenance','true'], ['Instance ID', '2c1ca484-cbc2-408b-ab86-25a2c15ce280']];
353 testComponentInfoByType('node-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1',labelsAndValuesForModel,'VFModule INFO',
354 'ss820f_0918_db',extraLabelsAndValuesForInstance,'VFModule Instance INFO')
355
356 }
357
358 function testComponentInfoForNetwork(){
359 const labelsAndValuesForModel = [
360 ['Model version', '37.0'],
361 ['Model customization ID', '94fdd893-4a36-4d70-b16a-ec29c54c184f'],
362 ['Network role','network role 1, network role 2']
363 ];
364 const extraLabelsAndValuesForInstance = [['In maintenance','false'], ['Instance ID', 'NETWORK3_INSTANCE_ID'],['Instance type', 'CONTRAIL30_BASIC']];
365 testComponentInfoByType('node-ExtVL 0',labelsAndValuesForModel,'Network INFO',
366 'NETWORK3_INSTANCE_NAME',extraLabelsAndValuesForInstance,'Network Instance INFO');
367
368 }
369
370 function testComponentInfoByType(leftNode:string, labelsAndValuesForModel: string[][], expectedTitleForModel:string, rightNode:string, extraLabelsAndValuesForInstance: string[][], expectedTitleForInstance:string){
371 cy.getElementByDataTestsId(leftNode).eq(0).click({force: true});
372 cy.assertComponentInfoTitleLabelsAndValues(expectedTitleForModel, labelsAndValuesForModel);
373
374 let labelsAndValuesForInstance = labelsAndValuesForModel.concat(extraLabelsAndValuesForInstance);
375 cy.get('drawing-board-tree').contains(rightNode).click();
376 cy.assertComponentInfoTitleLabelsAndValues(expectedTitleForInstance, labelsAndValuesForInstance);
377 }
378
379
Ittay Stern6f900cc2018-08-29 17:01:32 +0300380});