Skip to content

Commit 37dc196

Browse files
authored
fix(e2e-tests): wait for diagram nodes to be visible COMPASS-9627 (#7141)
* move to exact target * revert change * wait for nodes
1 parent 21cf71b commit 37dc196

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

packages/compass-e2e-tests/tests/data-modeling-tab.test.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)