This is an automated email from the ASF dual-hosted git repository.

lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git


The following commit(s) were added to refs/heads/rocketmq-studio by this push:
     new a69b2060 test(web): stop the suite from failing under parallel load 
(#800)
a69b2060 is described below

commit a69b2060f114d9b7766b500a00487eb68994db31
Author: lizhimins <[email protected]>
AuthorDate: Mon Aug 3 14:33:26 2026 +0800

    test(web): stop the suite from failing under parallel load (#800)
---
 web/src/pages/settings/__tests__/DataSourceTab.test.tsx | 12 +++++++-----
 web/src/test/setup.ts                                   |  5 +++++
 web/vite.config.ts                                      |  4 ++++
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/web/src/pages/settings/__tests__/DataSourceTab.test.tsx 
b/web/src/pages/settings/__tests__/DataSourceTab.test.tsx
index c178bfd5..d8012277 100644
--- a/web/src/pages/settings/__tests__/DataSourceTab.test.tsx
+++ b/web/src/pages/settings/__tests__/DataSourceTab.test.tsx
@@ -82,7 +82,7 @@ describe('DataSourceTab', () => {
       }),
     );
 
-    const user = userEvent.setup();
+    const user = userEvent.setup({ pointerEventsCheck: 0 });
     render(
       <App>
         <DataSourceTab />
@@ -104,7 +104,7 @@ describe('DataSourceTab', () => {
   it('submits basic auth credentials when testing from the modal', async () => 
{
     vi.mocked(testDataSource).mockResolvedValue({ success: true, message: 'ok' 
});
 
-    const user = userEvent.setup();
+    const user = userEvent.setup({ pointerEventsCheck: 0 });
     render(
       <App>
         <DataSourceTab />
@@ -136,7 +136,7 @@ describe('DataSourceTab', () => {
   it('submits bearer token when testing from the modal', async () => {
     vi.mocked(testDataSource).mockResolvedValue({ success: true, message: 'ok' 
});
 
-    const user = userEvent.setup();
+    const user = userEvent.setup({ pointerEventsCheck: 0 });
     render(
       <App>
         <DataSourceTab />
@@ -174,7 +174,7 @@ describe('DataSourceTab', () => {
       status: 'healthy',
     });
 
-    const user = userEvent.setup();
+    const user = userEvent.setup({ pointerEventsCheck: 0 });
     render(
       <App>
         <DataSourceTab />
@@ -222,7 +222,7 @@ describe('DataSourceTab', () => {
       status: 'healthy',
     });
 
-    const user = userEvent.setup();
+    const user = userEvent.setup({ pointerEventsCheck: 0 });
     render(
       <App>
         <DataSourceTab />
@@ -251,6 +251,8 @@ describe('DataSourceTab', () => {
   });
 });
 
+// antd's Select dropdown keeps `pointer-events: none` while its open 
animation runs,
+// so userEvent refuses to click the option; the interaction itself is valid.
 async function selectAntdOption(
   user: ReturnType<typeof userEvent.setup>,
   label: string,
diff --git a/web/src/test/setup.ts b/web/src/test/setup.ts
index a9f1da51..a64e7c03 100644
--- a/web/src/test/setup.ts
+++ b/web/src/test/setup.ts
@@ -1,5 +1,10 @@
 /// <reference types="vitest/globals" />
 import '@testing-library/jest-dom/vitest';
+import { configure } from '@testing-library/react';
+
+// findBy*/waitFor default to 1s, which antd's async rendering exceeds once 
the whole
+// suite runs in parallel.
+configure({ asyncUtilTimeout: 5000 });
 
 // Clean up localStorage between tests
 beforeEach(() => {
diff --git a/web/vite.config.ts b/web/vite.config.ts
index d5c0bebf..5c6fb649 100644
--- a/web/vite.config.ts
+++ b/web/vite.config.ts
@@ -20,6 +20,10 @@ export default defineConfig(({ mode }) => {
       environment: 'jsdom',
       setupFiles: './src/test/setup.ts',
       css: true,
+      // antd interactions driven through userEvent are slow in jsdom, and the 
default
+      // 5s budget is exceeded once the whole suite runs in parallel.
+      testTimeout: 20000,
+      hookTimeout: 20000,
     },
   };
 });

Reply via email to