From 7138fea9db05b49bce672563304a933cf343fcbb Mon Sep 17 00:00:00 2001 From: DarkSky Date: Thu, 9 Apr 2026 11:21:25 +0800 Subject: [PATCH] fix: test stability --- .../__tests__/edgeless/connector-dom.spec.ts | 49 ++++++++++++------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/blocksuite/integration-test/src/__tests__/edgeless/connector-dom.spec.ts b/blocksuite/integration-test/src/__tests__/edgeless/connector-dom.spec.ts index 1f4412d35..952eb7342 100644 --- a/blocksuite/integration-test/src/__tests__/edgeless/connector-dom.spec.ts +++ b/blocksuite/integration-test/src/__tests__/edgeless/connector-dom.spec.ts @@ -5,6 +5,26 @@ import { wait } from '../utils/common.js'; import { getSurface } from '../utils/edgeless.js'; import { setupEditor } from '../utils/setup.js'; +async function waitForConnectorElement( + surfaceView: ReturnType, + connectorId: string, + timeout = 1000 +) { + const startedAt = Date.now(); + + while (Date.now() - startedAt < timeout) { + const connectorElement = surfaceView.renderRoot.querySelector( + `[data-element-id="${connectorId}"]` + ); + + if (connectorElement) return connectorElement; + + await wait(50); + } + + return null; +} + describe('Connector rendering with DOM renderer', () => { beforeEach(async () => { const cleanup = await setupEditor('edgeless', [], { @@ -44,10 +64,9 @@ describe('Connector rendering with DOM renderer', () => { }; const connectorId = surfaceModel.addElement(connectorProps); - await wait(100); - - const connectorElement = surfaceView?.renderRoot.querySelector( - `[data-element-id="${connectorId}"]` + const connectorElement = await waitForConnectorElement( + surfaceView, + connectorId ); expect(connectorElement).not.toBeNull(); @@ -73,11 +92,9 @@ describe('Connector rendering with DOM renderer', () => { }; const connectorId = surfaceModel.addElement(connectorProps); - // Wait for path generation and rendering - await wait(500); - - const connectorElement = surfaceView?.renderRoot.querySelector( - `[data-element-id="${connectorId}"]` + const connectorElement = await waitForConnectorElement( + surfaceView, + connectorId ); expect(connectorElement).not.toBeNull(); @@ -110,10 +127,9 @@ describe('Connector rendering with DOM renderer', () => { }; const connectorId = surfaceModel.addElement(connectorProps); - await wait(100); - - const connectorElement = surfaceView?.renderRoot.querySelector( - `[data-element-id="${connectorId}"]` + const connectorElement = await waitForConnectorElement( + surfaceView, + connectorId ); expect(connectorElement).not.toBeNull(); @@ -139,10 +155,9 @@ describe('Connector rendering with DOM renderer', () => { }; const connectorId = surfaceModel.addElement(connectorProps); - await wait(100); - - let connectorElement = surfaceView.renderRoot.querySelector( - `[data-element-id="${connectorId}"]` + let connectorElement = await waitForConnectorElement( + surfaceView, + connectorId ); expect(connectorElement).not.toBeNull();