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,
},
};
});