diff --git a/frontend/src/test-utils.test.tsx b/frontend/src/test-utils.test.tsx
new file mode 100644
index 0000000..35c76e7
--- /dev/null
+++ b/frontend/src/test-utils.test.tsx
@@ -0,0 +1,16 @@
+import { screen } from '@testing-library/react'
+import { useMantineEnv } from '@mantine/core'
+import { describe, expect, it } from 'vitest'
+import { renderWithProviders } from './test-utils'
+
+function MantineEnvironmentProbe() {
+ return
+}
+
+describe('renderWithProviders', () => {
+ it('uses Mantine test environment', () => {
+ renderWithProviders()
+
+ expect(screen.getByText('test')).toBeInTheDocument()
+ })
+})
diff --git a/frontend/src/test-utils.tsx b/frontend/src/test-utils.tsx
index 49c3e90..6b84928 100644
--- a/frontend/src/test-utils.tsx
+++ b/frontend/src/test-utils.tsx
@@ -51,7 +51,7 @@ export function renderWithProviders(ui: ReactNode, options: RenderOptions = {})
function Wrapper() {
return (
-
+
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
index 87dd1ef..1415476 100644
--- a/frontend/vite.config.ts
+++ b/frontend/vite.config.ts
@@ -19,6 +19,9 @@ export default defineConfig({
test: {
environment: 'jsdom',
globals: true,
+ // Mantine-heavy UI tests allocate substantial jsdom resources. Keep the
+ // worker pool bounded so concurrent CI jobs remain reliable.
+ maxWorkers: 2,
setupFiles: ['./src/test-setup.ts'],
env: {
// Lock the test timezone to UTC so that date-formatting assertions