@@ -77,16 +77,23 @@ async function setupDiagram(
77
77
await dataModelEditor . waitForDisplayed ( ) ;
78
78
}
79
79
80
- async function getDiagramNodes ( browser : CompassBrowser ) : Promise < Node [ ] > {
81
- const nodes = await browser . execute ( function ( selector ) {
82
- const node = document . querySelector ( selector ) ;
83
- if ( ! node ) {
84
- throw new Error ( `Element with selector ${ selector } not found` ) ;
85
- }
86
- return (
87
- node as Element & { _diagram : DiagramInstance }
88
- ) . _diagram . getNodes ( ) ;
89
- } , Selectors . DataModelEditor ) ;
80
+ async function getDiagramNodes (
81
+ browser : CompassBrowser ,
82
+ expectedCount : number
83
+ ) : Promise < Node [ ] > {
84
+ let nodes : Node [ ] = [ ] ;
85
+ await browser . waitUntil ( async ( ) => {
86
+ nodes = await browser . execute ( function ( selector ) {
87
+ const node = document . querySelector ( selector ) ;
88
+ if ( ! node ) {
89
+ throw new Error ( `Element with selector ${ selector } not found` ) ;
90
+ }
91
+ return (
92
+ node as Element & { _diagram : DiagramInstance }
93
+ ) . _diagram . getNodes ( ) ;
94
+ } , Selectors . DataModelEditor ) ;
95
+ return nodes . length === expectedCount ;
96
+ } ) ;
90
97
return nodes ;
91
98
}
92
99
@@ -172,7 +179,7 @@ describe('Data Modeling tab', function () {
172
179
const dataModelEditor = browser . $ ( Selectors . DataModelEditor ) ;
173
180
await dataModelEditor . waitForDisplayed ( ) ;
174
181
175
- const nodes = await getDiagramNodes ( browser ) ;
182
+ const nodes = await getDiagramNodes ( browser , 2 ) ;
176
183
expect ( nodes ) . to . have . lengthOf ( 2 ) ;
177
184
expect ( nodes [ 0 ] . id ) . to . equal ( 'test.testCollection-one' ) ;
178
185
expect ( nodes [ 1 ] . id ) . to . equal ( 'test.testCollection-two' ) ;
@@ -215,7 +222,7 @@ describe('Data Modeling tab', function () {
215
222
await browser . $ ( Selectors . DataModelEditor ) . waitForDisplayed ( ) ;
216
223
217
224
// TODO: Verify that the diagram has the latest changes COMPASS-9479
218
- const savedNodes = await getDiagramNodes ( browser ) ;
225
+ const savedNodes = await getDiagramNodes ( browser , 2 ) ;
219
226
expect ( savedNodes ) . to . have . lengthOf ( 2 ) ;
220
227
221
228
// Open a new tab
@@ -437,7 +444,7 @@ describe('Data Modeling tab', function () {
437
444
438
445
await browser . selectFile ( Selectors . ImportDataModelInput , filePath ) ;
439
446
await browser . $ ( Selectors . DataModelEditor ) . waitForDisplayed ( ) ;
440
- const savedNodes = await getDiagramNodes ( browser ) ;
447
+ const savedNodes = await getDiagramNodes ( browser , 2 ) ;
441
448
442
449
expect ( savedNodes ) . to . have . lengthOf ( 2 ) ;
443
450
expect ( savedNodes [ 0 ] . id ) . to . equal ( 'test.testCollection-one' ) ;
0 commit comments