@@ -77,16 +77,23 @@ async function setupDiagram(
7777 await dataModelEditor . waitForDisplayed ( ) ;
7878}
7979
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+ } ) ;
9097 return nodes ;
9198}
9299
@@ -172,7 +179,7 @@ describe('Data Modeling tab', function () {
172179 const dataModelEditor = browser . $ ( Selectors . DataModelEditor ) ;
173180 await dataModelEditor . waitForDisplayed ( ) ;
174181
175- const nodes = await getDiagramNodes ( browser ) ;
182+ const nodes = await getDiagramNodes ( browser , 2 ) ;
176183 expect ( nodes ) . to . have . lengthOf ( 2 ) ;
177184 expect ( nodes [ 0 ] . id ) . to . equal ( 'test.testCollection-one' ) ;
178185 expect ( nodes [ 1 ] . id ) . to . equal ( 'test.testCollection-two' ) ;
@@ -215,7 +222,7 @@ describe('Data Modeling tab', function () {
215222 await browser . $ ( Selectors . DataModelEditor ) . waitForDisplayed ( ) ;
216223
217224 // TODO: Verify that the diagram has the latest changes COMPASS-9479
218- const savedNodes = await getDiagramNodes ( browser ) ;
225+ const savedNodes = await getDiagramNodes ( browser , 2 ) ;
219226 expect ( savedNodes ) . to . have . lengthOf ( 2 ) ;
220227
221228 // Open a new tab
@@ -437,7 +444,7 @@ describe('Data Modeling tab', function () {
437444
438445 await browser . selectFile ( Selectors . ImportDataModelInput , filePath ) ;
439446 await browser . $ ( Selectors . DataModelEditor ) . waitForDisplayed ( ) ;
440- const savedNodes = await getDiagramNodes ( browser ) ;
447+ const savedNodes = await getDiagramNodes ( browser , 2 ) ;
441448
442449 expect ( savedNodes ) . to . have . lengthOf ( 2 ) ;
443450 expect ( savedNodes [ 0 ] . id ) . to . equal ( 'test.testCollection-one' ) ;
0 commit comments