From ba052fda648d6cc84e1642710f1911e5fedc2152 Mon Sep 17 00:00:00 2001 From: Manuel Schiller <6340397+schiller-manuel@users.noreply.github.com> Date: Thu, 15 Oct 2026 17:34:17 +0200 Subject: [PATCH 1/2] chore(deps): upgrade Vitest to 5 and migrate benchmarks to the bench fixture Vitest 5 lets jsdom environments replace Node 25+'s native Web Storage globals (vitest-dev/vitest#10293), which Vitest 4 left in place on Node 26. - Bump vitest/@vitest/ui to ^5.0.4, @testing-library/jest-dom to ^7.0.1 and @codspeed/vitest-plugin to ^6.0.1 (Vitest 5 support). - Temporary jest-dom workaround until testing-library/jest-dom#742 ships: extend `expect` with the matchers directly and augment Vitest 5's `Matchers`. `@testing-library/jest-dom/vitest` can bind a different Vitest copy under pnpm peer variants, which breaks `rejects.toThrow`. - Replace the removed `sequential` suite option and delete a fully commented-out typecheck file that Vitest 5 rejects as empty. - Rewrite all `bench()` files for the `bench` test fixture. CodSpeed suites turn the owning `describe` into a `test` with the same title, so every CodSpeed URI stays identical. Lifecycles move to per-bench hooks: suites that used suite hooks under CodSpeed keep fresh state per CodSpeed invocation, while Tinybench keeps one instance per warmup/run phase. - Bench functions are `async`: CodSpeed's Vitest 5 provider only awaits AsyncFunctions. - Run benchmarks with `--mode benchmark`, as Vitest 4 did, so vite-plugin-solid does not inject a jest-dom setup file, and give benchmark tests a 10 minute timeout for instrumented runs. Co-Authored-By: Claude Opus 5.5 --- benchmarks/AGENTS.md | 2 + benchmarks/client-nav/README.md | 16 +- .../link-performance/client.bench.ts | 17 +- .../client-nav/link-performance/config.ts | 2 + .../client-nav/link-performance/project.json | 4 +- .../client-nav/link-performance/ssr.bench.ts | 17 +- benchmarks/client-nav/package.json | 10 +- benchmarks/client-nav/react/speed.bench.ts | 35 +- benchmarks/client-nav/react/vite.config.ts | 4 +- .../async-pipeline/react/speed.bench.ts | 31 +- .../async-pipeline/react/vite.config.ts | 6 +- .../async-pipeline/solid/speed.bench.ts | 31 +- .../async-pipeline/solid/vite.config.ts | 6 +- .../async-pipeline/vue/speed.bench.ts | 31 +- .../async-pipeline/vue/vite.config.ts | 6 +- .../control-flow/react/speed.bench.ts | 31 +- .../control-flow/react/vite.config.ts | 6 +- .../control-flow/solid/speed.bench.ts | 31 +- .../control-flow/solid/vite.config.ts | 6 +- .../scenarios/control-flow/vue/speed.bench.ts | 31 +- .../scenarios/control-flow/vue/vite.config.ts | 6 +- .../scenarios/head/react/speed.bench.ts | 31 +- .../scenarios/head/react/vite.config.ts | 6 +- .../scenarios/head/solid/speed.bench.ts | 31 +- .../scenarios/head/solid/vite.config.ts | 6 +- .../scenarios/head/vue/speed.bench.ts | 31 +- .../scenarios/head/vue/vite.config.ts | 6 +- .../scenarios/history/react/speed.bench.ts | 31 +- .../scenarios/history/react/vite.config.ts | 6 +- .../scenarios/history/solid/speed.bench.ts | 31 +- .../scenarios/history/solid/vite.config.ts | 6 +- .../scenarios/history/vue/speed.bench.ts | 31 +- .../scenarios/history/vue/vite.config.ts | 6 +- .../hydration/react/hydration.test.ts | 17 - .../scenarios/hydration/react/project.json | 2 +- .../scenarios/hydration/react/setup.ts | 13 - .../scenarios/hydration/react/speed.bench.ts | 26 +- .../scenarios/hydration/react/vite.config.ts | 6 +- .../hydration/solid/hydration.test.ts | 10 +- .../scenarios/hydration/solid/project.json | 2 +- .../scenarios/hydration/solid/setup.ts | 13 - .../scenarios/hydration/solid/speed.bench.ts | 26 +- .../scenarios/hydration/solid/vite.config.ts | 6 +- .../scenarios/link-churn/react/speed.bench.ts | 31 +- .../scenarios/link-churn/react/vite.config.ts | 6 +- .../scenarios/link-churn/solid/speed.bench.ts | 31 +- .../scenarios/link-churn/solid/vite.config.ts | 6 +- .../scenarios/link-churn/vue/speed.bench.ts | 31 +- .../scenarios/link-churn/vue/vite.config.ts | 6 +- .../scenarios/links/react/speed.bench.ts | 31 +- .../scenarios/links/react/vite.config.ts | 6 +- .../scenarios/links/solid/speed.bench.ts | 31 +- .../scenarios/links/solid/vite.config.ts | 6 +- .../scenarios/links/vue/speed.bench.ts | 31 +- .../scenarios/links/vue/vite.config.ts | 6 +- .../scenarios/loaders/react/speed.bench.ts | 31 +- .../scenarios/loaders/react/vite.config.ts | 6 +- .../scenarios/loaders/solid/speed.bench.ts | 31 +- .../scenarios/loaders/solid/vite.config.ts | 6 +- .../scenarios/loaders/vue/speed.bench.ts | 31 +- .../scenarios/loaders/vue/vite.config.ts | 6 +- .../scenarios/mount/react/speed.bench.ts | 31 +- .../scenarios/mount/react/vite.config.ts | 6 +- .../scenarios/mount/solid/speed.bench.ts | 31 +- .../scenarios/mount/solid/vite.config.ts | 6 +- .../scenarios/mount/vue/speed.bench.ts | 37 +- .../scenarios/mount/vue/vite.config.ts | 6 +- .../nested-params/react/speed.bench.ts | 31 +- .../nested-params/react/vite.config.ts | 6 +- .../nested-params/solid/speed.bench.ts | 31 +- .../nested-params/solid/vite.config.ts | 6 +- .../nested-params/vue/speed.bench.ts | 31 +- .../nested-params/vue/vite.config.ts | 6 +- .../scenarios/preload/react/speed.bench.ts | 31 +- .../scenarios/preload/react/vite.config.ts | 6 +- .../scenarios/preload/solid/speed.bench.ts | 31 +- .../scenarios/preload/solid/vite.config.ts | 6 +- .../scenarios/preload/vue/speed.bench.ts | 31 +- .../scenarios/preload/vue/vite.config.ts | 6 +- .../scenarios/rewrites/react/speed.bench.ts | 31 +- .../scenarios/rewrites/react/vite.config.ts | 6 +- .../scenarios/rewrites/solid/speed.bench.ts | 31 +- .../scenarios/rewrites/solid/vite.config.ts | 6 +- .../scenarios/rewrites/vue/speed.bench.ts | 31 +- .../scenarios/rewrites/vue/vite.config.ts | 6 +- .../route-tree-scale/react/speed.bench.ts | 31 +- .../route-tree-scale/react/vite.config.ts | 6 +- .../route-tree-scale/solid/speed.bench.ts | 31 +- .../route-tree-scale/solid/vite.config.ts | 6 +- .../route-tree-scale/vue/speed.bench.ts | 31 +- .../route-tree-scale/vue/vite.config.ts | 6 +- .../search-params/react/speed.bench.ts | 31 +- .../search-params/react/vite.config.ts | 6 +- .../search-params/solid/speed.bench.ts | 31 +- .../search-params/solid/vite.config.ts | 6 +- .../search-params/vue/speed.bench.ts | 31 +- .../search-params/vue/vite.config.ts | 6 +- benchmarks/client-nav/solid/speed.bench.ts | 35 +- benchmarks/client-nav/solid/vite.config.ts | 4 +- benchmarks/client-nav/vue/speed.bench.ts | 35 +- benchmarks/client-nav/vue/vite.config.ts | 4 +- benchmarks/cpu-simulation.ts | 44 +- benchmarks/memory/README.md | 26 +- benchmarks/memory/client/bench-utils.ts | 2 + benchmarks/memory/client/benchmark.ts | 4 + benchmarks/memory/client/package.json | 8 +- .../react/memory.bench.ts | 25 +- .../solid/memory.bench.ts | 25 +- .../vue/memory.bench.ts | 25 +- .../react/memory.bench.ts | 25 +- .../solid/memory.bench.ts | 25 +- .../loader-data-retention/vue/memory.bench.ts | 25 +- .../mount-unmount/react/memory.bench.ts | 25 +- .../mount-unmount/solid/memory.bench.ts | 25 +- .../mount-unmount/vue/memory.bench.ts | 25 +- .../navigation-churn/react/memory.bench.ts | 25 +- .../navigation-churn/solid/memory.bench.ts | 25 +- .../navigation-churn/vue/memory.bench.ts | 25 +- .../preload-churn/react/memory.bench.ts | 25 +- .../preload-churn/solid/memory.bench.ts | 25 +- .../preload-churn/vue/memory.bench.ts | 25 +- .../react/memory.bench.ts | 25 +- .../solid/memory.bench.ts | 25 +- .../unique-location-churn/vue/memory.bench.ts | 25 +- benchmarks/memory/client/vitest.setup.ts | 7 - benchmarks/memory/runtime.ts | 6 +- benchmarks/memory/server/bench-utils.ts | 2 + benchmarks/memory/server/benchmark.ts | 4 + benchmarks/memory/server/package.json | 8 +- .../aborted-requests/react/memory.bench.ts | 13 +- .../scenarios/aborted-requests/shared.ts | 2 +- .../aborted-requests/solid/memory.bench.ts | 13 +- .../aborted-requests/vue/memory.bench.ts | 13 +- .../error-paths/react/memory.bench.ts | 13 +- .../error-paths/react/memory.error.bench.ts | 13 +- .../react/memory.not-found.bench.ts | 13 +- .../react/memory.unmatched.bench.ts | 13 +- .../server/scenarios/error-paths/shared.ts | 8 +- .../error-paths/solid/memory.bench.ts | 13 +- .../error-paths/solid/memory.error.bench.ts | 13 +- .../solid/memory.not-found.bench.ts | 13 +- .../solid/memory.unmatched.bench.ts | 13 +- .../scenarios/error-paths/vue/memory.bench.ts | 13 +- .../error-paths/vue/memory.error.bench.ts | 13 +- .../error-paths/vue/memory.not-found.bench.ts | 13 +- .../error-paths/vue/memory.unmatched.bench.ts | 13 +- .../peak-large-page/react/memory.bench.ts | 13 +- .../scenarios/peak-large-page/shared.ts | 2 +- .../peak-large-page/solid/memory.bench.ts | 13 +- .../peak-large-page/vue/memory.bench.ts | 13 +- .../request-churn/react/memory.bench.ts | 13 +- .../server/scenarios/request-churn/shared.ts | 2 +- .../request-churn/solid/memory.bench.ts | 13 +- .../request-churn/vue/memory.bench.ts | 13 +- .../react/memory.bench.ts | 13 +- .../scenarios/serialization-payload/shared.ts | 2 +- .../solid/memory.bench.ts | 13 +- .../serialization-payload/vue/memory.bench.ts | 13 +- .../server-fn-churn/react/memory.bench.ts | 13 +- .../scenarios/server-fn-churn/shared.ts | 2 +- .../server-fn-churn/solid/memory.bench.ts | 13 +- .../server-fn-churn/vue/memory.bench.ts | 13 +- .../streaming-peak/react/memory.bench.ts | 13 +- .../server/scenarios/streaming-peak/shared.ts | 2 +- .../streaming-peak/solid/memory.bench.ts | 13 +- .../streaming-peak/vue/memory.bench.ts | 13 +- benchmarks/memory/server/vitest.setup.ts | 4 - benchmarks/memory/turn.ts | 22 + benchmarks/ssr/package.json | 10 +- benchmarks/ssr/react/speed.bench.ts | 20 +- benchmarks/ssr/react/vite.config.ts | 3 +- .../speed.assets-linked-css-control.bench.ts | 12 +- .../ssr/scenarios/assets/react/speed.bench.ts | 12 +- .../ssr/scenarios/assets/react/vite.config.ts | 6 +- .../speed.assets-linked-css-control.bench.ts | 12 +- .../ssr/scenarios/assets/solid/speed.bench.ts | 12 +- .../ssr/scenarios/assets/solid/vite.config.ts | 6 +- .../speed.assets-linked-css-control.bench.ts | 12 +- .../ssr/scenarios/assets/vue/speed.bench.ts | 12 +- .../ssr/scenarios/assets/vue/vite.config.ts | 6 +- .../before-load/react/speed.bench.ts | 12 +- .../before-load/react/vite.config.ts | 6 +- .../before-load/solid/speed.bench.ts | 12 +- .../before-load/solid/vite.config.ts | 6 +- .../scenarios/before-load/vue/speed.bench.ts | 12 +- .../scenarios/before-load/vue/vite.config.ts | 6 +- .../control-flow/react/speed.bench.ts | 8 +- .../speed.control-flow-error-500.bench.ts | 12 +- .../speed.control-flow-route-headers.bench.ts | 12 +- .../speed.control-flow-unmatched-404.bench.ts | 12 +- .../react/speed.not-found.bench.ts | 12 +- .../control-flow/react/vite.config.ts | 6 +- .../control-flow/solid/speed.bench.ts | 8 +- .../speed.control-flow-error-500.bench.ts | 12 +- .../speed.control-flow-route-headers.bench.ts | 12 +- .../speed.control-flow-unmatched-404.bench.ts | 12 +- .../solid/speed.not-found.bench.ts | 12 +- .../control-flow/solid/vite.config.ts | 6 +- .../scenarios/control-flow/vue/speed.bench.ts | 8 +- .../vue/speed.control-flow-error-500.bench.ts | 12 +- .../speed.control-flow-route-headers.bench.ts | 12 +- .../speed.control-flow-unmatched-404.bench.ts | 12 +- .../control-flow/vue/speed.not-found.bench.ts | 8 +- .../scenarios/control-flow/vue/vite.config.ts | 6 +- .../global-middleware/react/speed.bench.ts | 12 +- .../react/speed.global-mw-server-fn.bench.ts | 12 +- ...obal-mw-server-route-0-middleware.bench.ts | 12 +- ...obal-mw-server-route-1-middleware.bench.ts | 12 +- ...obal-mw-server-route-2-middleware.bench.ts | 12 +- .../speed.global-mw-server-route.bench.ts | 12 +- .../global-middleware/react/vite.config.ts | 6 +- .../global-middleware/solid/speed.bench.ts | 12 +- .../solid/speed.global-mw-server-fn.bench.ts | 12 +- ...obal-mw-server-route-0-middleware.bench.ts | 12 +- ...obal-mw-server-route-1-middleware.bench.ts | 12 +- ...obal-mw-server-route-2-middleware.bench.ts | 12 +- .../speed.global-mw-server-route.bench.ts | 12 +- .../global-middleware/solid/vite.config.ts | 6 +- .../global-middleware/vue/speed.bench.ts | 12 +- .../vue/speed.global-mw-server-fn.bench.ts | 12 +- ...obal-mw-server-route-0-middleware.bench.ts | 12 +- ...obal-mw-server-route-1-middleware.bench.ts | 12 +- ...obal-mw-server-route-2-middleware.bench.ts | 12 +- .../vue/speed.global-mw-server-route.bench.ts | 12 +- .../global-middleware/vue/vite.config.ts | 6 +- .../ssr/scenarios/head/react/speed.bench.ts | 8 +- .../ssr/scenarios/head/react/vite.config.ts | 6 +- .../ssr/scenarios/head/solid/speed.bench.ts | 8 +- .../ssr/scenarios/head/solid/vite.config.ts | 6 +- .../ssr/scenarios/head/vue/speed.bench.ts | 8 +- .../ssr/scenarios/head/vue/vite.config.ts | 6 +- .../scenarios/loaders/react/speed.bench.ts | 8 +- .../scenarios/loaders/react/vite.config.ts | 6 +- .../scenarios/loaders/solid/speed.bench.ts | 8 +- .../scenarios/loaders/solid/vite.config.ts | 6 +- .../ssr/scenarios/loaders/vue/speed.bench.ts | 8 +- .../ssr/scenarios/loaders/vue/vite.config.ts | 6 +- .../scenarios/rewrites/react/speed.bench.ts | 12 +- .../react/speed.rewrite-passthrough.bench.ts | 12 +- .../scenarios/rewrites/react/vite.config.ts | 6 +- .../scenarios/rewrites/solid/speed.bench.ts | 12 +- .../solid/speed.rewrite-passthrough.bench.ts | 12 +- .../scenarios/rewrites/solid/vite.config.ts | 6 +- .../ssr/scenarios/rewrites/vue/speed.bench.ts | 12 +- .../vue/speed.rewrite-passthrough.bench.ts | 12 +- .../ssr/scenarios/rewrites/vue/vite.config.ts | 6 +- .../selective-ssr/react/speed.bench.ts | 8 +- .../selective-ssr/react/vite.config.ts | 6 +- .../selective-ssr/solid/speed.bench.ts | 8 +- .../selective-ssr/solid/vite.config.ts | 6 +- .../selective-ssr/vue/speed.bench.ts | 8 +- .../selective-ssr/vue/vite.config.ts | 6 +- .../serialization/react/speed.bench.ts | 12 +- .../speed.dehydrate-plain-control.bench.ts | 12 +- .../serialization/react/vite.config.ts | 6 +- .../serialization/solid/speed.bench.ts | 12 +- .../speed.dehydrate-plain-control.bench.ts | 12 +- .../serialization/solid/vite.config.ts | 6 +- .../serialization/vue/speed.bench.ts | 12 +- .../speed.dehydrate-plain-control.bench.ts | 12 +- .../serialization/vue/vite.config.ts | 6 +- .../server-fn-transport/react/speed.bench.ts | 12 +- .../speed.server-fn-raw-response.bench.ts | 12 +- .../react/speed.server-fn-raw-stream.bench.ts | 12 +- .../server-fn-transport/react/vite.config.ts | 6 +- .../server-fn-transport/solid/speed.bench.ts | 12 +- .../speed.server-fn-raw-response.bench.ts | 12 +- .../solid/speed.server-fn-raw-stream.bench.ts | 12 +- .../server-fn-transport/solid/vite.config.ts | 6 +- .../server-fn-transport/vue/speed.bench.ts | 12 +- .../vue/speed.server-fn-raw-response.bench.ts | 12 +- .../vue/speed.server-fn-raw-stream.bench.ts | 12 +- .../server-fn-transport/vue/vite.config.ts | 6 +- .../scenarios/server-fns/react/speed.bench.ts | 12 +- ...eed.server-fn-during-document-ssr.bench.ts | 12 +- .../react/speed.server-fn-not-found.bench.ts | 12 +- .../react/speed.server-fn-post.bench.ts | 12 +- .../react/speed.server-fn-redirect.bench.ts | 12 +- .../speed.server-fn-send-context.bench.ts | 12 +- .../scenarios/server-fns/react/vite.config.ts | 6 +- .../scenarios/server-fns/solid/speed.bench.ts | 12 +- ...eed.server-fn-during-document-ssr.bench.ts | 12 +- .../solid/speed.server-fn-not-found.bench.ts | 12 +- .../solid/speed.server-fn-post.bench.ts | 12 +- .../solid/speed.server-fn-redirect.bench.ts | 12 +- .../speed.server-fn-send-context.bench.ts | 12 +- .../scenarios/server-fns/solid/vite.config.ts | 6 +- .../scenarios/server-fns/vue/speed.bench.ts | 12 +- ...eed.server-fn-during-document-ssr.bench.ts | 12 +- .../vue/speed.server-fn-not-found.bench.ts | 12 +- .../vue/speed.server-fn-post.bench.ts | 12 +- .../vue/speed.server-fn-redirect.bench.ts | 12 +- .../vue/speed.server-fn-send-context.bench.ts | 12 +- .../scenarios/server-fns/vue/vite.config.ts | 6 +- .../react/speed.bench.ts | 12 +- .../react/vite.config.ts | 6 +- .../solid/speed.bench.ts | 12 +- .../solid/vite.config.ts | 6 +- .../vue/speed.bench.ts | 12 +- .../vue/vite.config.ts | 6 +- .../server-routes/react/speed.bench.ts | 12 +- .../server-routes/react/vite.config.ts | 6 +- .../server-routes/solid/speed.bench.ts | 12 +- .../server-routes/solid/vite.config.ts | 6 +- .../server-routes/vue/speed.bench.ts | 12 +- .../server-routes/vue/vite.config.ts | 6 +- .../scenarios/streaming/react/speed.bench.ts | 12 +- .../scenarios/streaming/react/vite.config.ts | 6 +- .../scenarios/streaming/solid/speed.bench.ts | 12 +- .../scenarios/streaming/solid/vite.config.ts | 6 +- .../scenarios/streaming/vue/speed.bench.ts | 12 +- .../scenarios/streaming/vue/vite.config.ts | 6 +- benchmarks/ssr/solid/speed.bench.ts | 20 +- benchmarks/ssr/solid/vite.config.ts | 3 +- benchmarks/ssr/vue/speed.bench.ts | 20 +- benchmarks/ssr/vue/vite.config.ts | 3 +- .../search-validator-adapters/package.json | 4 +- .../tests/arktype.test.tsx | 1 - .../tests/jest-dom.setup.ts | 18 + .../tests/valibot.test.tsx | 1 - .../search-validator-adapters/vite.config.ts | 1 + examples/react/start-bun/package.json | 2 +- .../search-validator-adapters/package.json | 4 +- .../tests/arktype.test.tsx | 1 - .../tests/jest-dom.setup.ts | 18 + .../tests/valibot.test.tsx | 1 - .../search-validator-adapters/vite.config.ts | 1 + examples/solid/start-bun/package.json | 2 +- packages/arktype-adapter/tests/index.test.tsx | 1 - .../arktype-adapter/tests/jest-dom.setup.ts | 18 + packages/arktype-adapter/vite.config.ts | 1 + packages/react-router/tests/blocker.test.tsx | 1 - packages/react-router/tests/jest-dom.setup.ts | 18 + packages/react-router/tests/link.bench.tsx | 74 +- packages/react-router/tests/setupTests.tsx | 1 - .../react-router/tests/useBlocker.test.tsx | 1 - .../react-router/tests/useNavigate.test.tsx | 1 - packages/react-router/vite.config.ts | 2 +- .../router-core/tests/build-location.bench.ts | 27 +- .../router-core/tests/cache-commit.bench.ts | 26 +- .../tests/cache-navigation.bench.ts | 10 +- .../tests/closing-tag-detection.bench.ts | 260 ++++--- .../router-core/tests/deep-equal.bench.ts | 131 ++-- .../tests/fallback-route-lifecycle.bench.ts | 14 +- .../router-core/tests/hydrationQueue.bench.ts | 14 +- .../tests/lightweight-location.bench.ts | 23 +- .../tests/matching-interpolation.bench.ts | 33 +- .../tests/new-process-route-tree.test.ts | 2 +- .../router-core/tests/path-decoder.bench.ts | 17 +- .../tests/path-interpolation.bench.ts | 139 ++-- .../tests/replace-equal-deep.bench.ts | 539 ++++++++----- packages/router-core/tests/rewrite.bench.ts | 104 +-- .../tests/route-tree-construction.bench.ts | 51 +- .../tests/searchParams-parse.bench.ts | 116 ++- .../router-core/tests/searchParams.bench.ts | 86 ++- .../router-core/tests/ssr-match-id.bench.ts | 30 +- .../tests/dehydrate.bench.ts | 30 +- .../tests/server-lifecycle.bench.ts | 120 +-- packages/solid-router/tests/blocker.test.tsx | 1 - packages/solid-router/tests/jest-dom.setup.ts | 18 + packages/solid-router/tests/link.bench.tsx | 74 +- packages/solid-router/tests/setupTests.tsx | 1 - .../solid-router/tests/useBlocker.test.tsx | 1 - .../solid-router/tests/useNavigate.test.tsx | 1 - packages/solid-router/vite.config.ts | 2 +- .../src/tests/createServerFn.test-d.tsx | 15 - .../src/tests/jest-dom.setup.ts | 18 + .../src/tests/setupTests.tsx | 1 - packages/solid-start-client/vite.config.ts | 2 +- .../tests/function-middleware.bench.ts | 53 +- .../tests/response-reconciliation.bench.md | 6 +- .../tests/response-reconciliation.bench.ts | 41 +- packages/valibot-adapter/tests/index.test.tsx | 1 - .../valibot-adapter/tests/jest-dom.setup.ts | 18 + packages/valibot-adapter/vite.config.ts | 1 + packages/vue-router/tests/blocker.test.tsx | 1 - packages/vue-router/tests/jest-dom.setup.ts | 18 + packages/vue-router/tests/link.bench.tsx | 74 +- packages/vue-router/tests/setupTests.tsx | 1 - packages/vue-router/tests/useBlocker.test.tsx | 1 - .../vue-router/tests/useNavigate.test.tsx | 1 - packages/vue-router/vite.config.ts | 2 +- packages/zod-adapter/tests/index.test.tsx | 1 - packages/zod-adapter/tests/jest-dom.setup.ts | 18 + packages/zod-adapter/vite.config.ts | 1 + pnpm-lock.yaml | 723 +++++++++++------- pnpm-workspace.yaml | 6 +- 387 files changed, 3778 insertions(+), 3486 deletions(-) delete mode 100644 benchmarks/memory/server/vitest.setup.ts create mode 100644 examples/react/search-validator-adapters/tests/jest-dom.setup.ts create mode 100644 examples/solid/search-validator-adapters/tests/jest-dom.setup.ts create mode 100644 packages/arktype-adapter/tests/jest-dom.setup.ts create mode 100644 packages/react-router/tests/jest-dom.setup.ts create mode 100644 packages/solid-router/tests/jest-dom.setup.ts delete mode 100644 packages/solid-start-client/src/tests/createServerFn.test-d.tsx create mode 100644 packages/solid-start-client/src/tests/jest-dom.setup.ts delete mode 100644 packages/solid-start-client/src/tests/setupTests.tsx create mode 100644 packages/valibot-adapter/tests/jest-dom.setup.ts create mode 100644 packages/vue-router/tests/jest-dom.setup.ts create mode 100644 packages/zod-adapter/tests/jest-dom.setup.ts diff --git a/benchmarks/AGENTS.md b/benchmarks/AGENTS.md index 268e23d9cc3..9d56a2411aa 100644 --- a/benchmarks/AGENTS.md +++ b/benchmarks/AGENTS.md @@ -10,4 +10,6 @@ Read the relevant README before running benchmarks. Compare baseline and candida Use `test:perf:` through Nx. Plain memory runs only smoke-test; memory metrics require CodSpeed. Client navigation benchmarks do not cover Start hydration or client server-function calls. +Run `vitest bench` directly only with `--mode benchmark`, as the Nx targets do. Vitest 5 otherwise uses Vite's `test` mode, where vite-plugin-solid injects a jest-dom setup file that benchmark packages cannot resolve. + For bundle-size work, follow the full optimization skill required by the root guide. Full API fixtures are maintained manually: when public hooks/components change, update matching `bundle-size/scenarios/*-full/src/routes/__root.tsx` fixtures. Save baseline results separately because each run overwrites `bundle-size/results/current.json`; report final gzip deltas and explain remaining growth. diff --git a/benchmarks/client-nav/README.md b/benchmarks/client-nav/README.md index 67ea50cb4e2..ec34ecc0c1b 100644 --- a/benchmarks/client-nav/README.md +++ b/benchmarks/client-nav/README.md @@ -78,6 +78,7 @@ scenarios follow these navigation/mount conventions: - Scenarios behave like a real user app: navigation happens through `` clicks dispatched on real anchor elements (unless a scenario specifically measures the imperative API), the router uses the default browser history, and `scrollRestoration` is enabled. - Each benchmark iteration advances a fixed, circular sequence of steps; every step awaits the router's `onRendered` event, so render work is included and steps cannot overlap. No two consecutive steps may target the same location, and the sequence ends back on the initial route. - Setup runs one warm-up lap through the sequence and asserts each step's observable output (e.g. `document.title`), so a scenario that silently stops doing its work fails instead of reporting a fast time. +- Apps are mounted and disposed outside timing by `benchLifecycle` (`benchmarks/cpu-simulation.ts`): CodSpeed measures a single invocation, so every invocation gets a freshly mounted app; plain `vitest bench` keeps one app per warmup/run phase. Bench functions must be `async` functions, because CodSpeed's Vitest 5 provider awaits only `AsyncFunction`s. - Determinism: no wall-clock timers (async work is resolved promises or counted `setTimeout(0)` hops), `staleTime`/`gcTime` only ever `0` or effectively-infinite, no `Math.random`/`Date.now` in the measured loop. Scroll restoration uses `getScrollRestorationKey: (location) => location.pathname` so its cache stays bounded (the default random per-entry key grows one cache entry per push navigation). The `mount` scenario opts out of `scrollRestoration` entirely and destroys its history on unmount — both register page-lifetime globals that would leak across its mount/unmount loop. - Push-only step laps grow jsdom's session-history entry list over a run (jsdom never truncates entries behind the current index). Per-push cost stays O(1) so timings are unaffected; only the `history` scenario needs — and has — a lap that is depth-stationary. - Calibration: pick per-iteration step counts so a bench's `vitest bench` run stays roughly between 8 and 30 seconds (long enough to average out, short enough for CI). @@ -102,7 +103,7 @@ Run a single scenario app manually (after building it through Nx): ```bash CI=1 NX_DAEMON=false pnpm nx run @benchmarks/client-nav--:build:client --outputStyle=stream --skipRemoteCache -cd benchmarks/client-nav && NODE_ENV=production vitest bench --config ./scenarios///vite.config.ts +cd benchmarks/client-nav && NODE_ENV=production vitest bench --mode benchmark --config ./scenarios///vite.config.ts ``` Run framework-specific flame benchmarks (10 second loop, profiled with `@platformatic/flame`, forced to `NODE_ENV=production`): @@ -178,11 +179,10 @@ task cancellation, and window disposal also run outside measurement. Diagnostic tests count Link renders or reactive evaluations and check they stop before the measured region ends; counting is disabled in the timed workload. -CodSpeed uses suite `beforeEach`/`afterEach` hooks. Ordinary Vitest instead -installs Tinybench's public Task iteration hooks from its stage-level `setup`. -Using only stage-level setup would let later iterations reuse an already -hydrated document. The hydration unit tests cover fresh-state setup through -both paths. +The bench's own `beforeEach`/`afterEach` hooks prepare and dispose every +sample outside timing, in both CodSpeed and ordinary Vitest runs. Per-phase +setup would let later iterations reuse an already hydrated document. The +hydration unit tests cover repeated fresh-state setup. Each scenario is included in its framework's aggregate build and CodSpeed run. Land the benchmark independently to establish main's baseline before comparing a @@ -196,7 +196,7 @@ construction. `scenarios/mount` includes construction but also rendering and loading. To isolate initialization, use the core construction benchmark: ```bash -CI=1 NX_DAEMON=false pnpm nx run @tanstack/router-core:test:unit --outputStyle=stream --skipRemoteCache -- bench tests/route-tree-construction.bench.ts --run --testNamePattern=1000.routes --outputJson /tmp/route-tree-construction.json +CI=1 NX_DAEMON=false pnpm nx run @tanstack/router-core:test:unit --outputStyle=stream --skipRemoteCache -- bench tests/route-tree-construction.bench.ts --run --testNamePattern=1000.routes --reporter=json --outputFile=/tmp/route-tree-construction.json ``` It covers 100, 1,000, and 10,000 static, dynamic, nested, or mixed routes. @@ -220,7 +220,7 @@ CI=1 NX_DAEMON=false pnpm nx run @benchmarks/react-link-performance:test:perf:cl CI=1 NX_DAEMON=false pnpm nx run @benchmarks/react-link-performance:test:perf:ssr --outputStyle=stream --skipRemoteCache -- --run # Select a feature and save the normal Vitest JSON report. -CI=1 NX_DAEMON=false pnpm nx run @benchmarks/react-link-performance:test:perf:client --outputStyle=stream --skipRemoteCache -- --run -t "updater|optional|splat" --outputJson /tmp/link-perf.json +CI=1 NX_DAEMON=false pnpm nx run @benchmarks/react-link-performance:test:perf:client --outputStyle=stream --skipRemoteCache -- --run -t "updater|optional|splat" --reporter=json --outputFile=/tmp/link-perf.json ``` The cases cover repeated versus unique destination params, updater functions, diff --git a/benchmarks/client-nav/link-performance/client.bench.ts b/benchmarks/client-nav/link-performance/client.bench.ts index 086fadd1619..f819fab52b6 100644 --- a/benchmarks/client-nav/link-performance/client.bench.ts +++ b/benchmarks/client-nav/link-performance/client.bench.ts @@ -1,4 +1,5 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../cpu-simulation' import { LINK_CASES } from './cases' import { createClientScenario, samplingOptions } from './scenario' import type * as App from './src/client' @@ -10,7 +11,7 @@ if (app.serverEnvironment !== false) { } for (const { id, label } of LINK_CASES) { - describe(label, () => { + test(label, async ({ bench }) => { const scenario = createClientScenario(app, id) function finish() { try { @@ -19,13 +20,11 @@ for (const { id, label } of LINK_CASES) { scenario.teardown() } } - beforeEach(scenario.setup) - afterEach(finish) - bench(`client Links: ${id}`, scenario.batch, { - ...samplingOptions, - setup: scenario.setup, - teardown: finish, - }) + await bench( + `client Links: ${id}`, + benchLifecycle({ before: scenario.setup, after: finish }), + scenario.batch, + ).run(samplingOptions) }) } diff --git a/benchmarks/client-nav/link-performance/config.ts b/benchmarks/client-nav/link-performance/config.ts index 416b0270575..33bbd6954c9 100644 --- a/benchmarks/client-nav/link-performance/config.ts +++ b/benchmarks/client-nav/link-performance/config.ts @@ -1,6 +1,7 @@ import { fileURLToPath } from 'node:url' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' +import { benchTestTimeout } from '../../cpu-simulation' import type { UserConfig } from 'vite' const root = fileURLToPath(new URL('.', import.meta.url)) @@ -53,6 +54,7 @@ export function createLinkPerformanceConfig( test: { name: `react-link-performance-${target}`, watch: false, + testTimeout: benchTestTimeout, environment: server ? 'node' : 'jsdom', setupFiles: server ? [] : ['../vitest.setup.ts'], server: { diff --git a/benchmarks/client-nav/link-performance/project.json b/benchmarks/client-nav/link-performance/project.json index 899f0138188..fd1751c0818 100644 --- a/benchmarks/client-nav/link-performance/project.json +++ b/benchmarks/client-nav/link-performance/project.json @@ -36,7 +36,7 @@ "cache": false, "dependsOn": ["build:client"], "options": { - "command": "NODE_ENV=production vitest bench --config ./link-performance/vite.client.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./link-performance/vite.client.config.ts", "cwd": "benchmarks/client-nav" } }, @@ -45,7 +45,7 @@ "cache": false, "dependsOn": ["build:ssr"], "options": { - "command": "NODE_ENV=production vitest bench --config ./link-performance/vite.ssr.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./link-performance/vite.ssr.config.ts", "cwd": "benchmarks/client-nav" } }, diff --git a/benchmarks/client-nav/link-performance/ssr.bench.ts b/benchmarks/client-nav/link-performance/ssr.bench.ts index 2a4b4312924..c30084e5100 100644 --- a/benchmarks/client-nav/link-performance/ssr.bench.ts +++ b/benchmarks/client-nav/link-performance/ssr.bench.ts @@ -1,4 +1,5 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../cpu-simulation' import { LINK_CASES } from './cases' import { createSsrScenario, samplingOptions } from './scenario' import type * as App from './src/ssr' @@ -10,7 +11,7 @@ if (app.serverEnvironment !== true) { } for (const { id, label } of LINK_CASES) { - describe(label, () => { + test(label, async ({ bench }) => { const scenario = createSsrScenario(app, id) function finish() { try { @@ -19,13 +20,11 @@ for (const { id, label } of LINK_CASES) { scenario.teardown() } } - beforeEach(scenario.setup) - afterEach(finish) - bench(`SSR Links: ${id}`, scenario.batch, { - ...samplingOptions, - setup: scenario.setup, - teardown: finish, - }) + await bench( + `SSR Links: ${id}`, + benchLifecycle({ before: scenario.setup, after: finish }), + scenario.batch, + ).run(samplingOptions) }) } diff --git a/benchmarks/client-nav/package.json b/benchmarks/client-nav/package.json index bc2eb66c4c1..1f878adc67f 100644 --- a/benchmarks/client-nav/package.json +++ b/benchmarks/client-nav/package.json @@ -9,10 +9,10 @@ "test:flame:react": "NODE_ENV=production flame run --md-format=detailed --delay=none --node-options=\"--stack-size=65500\" ./react/speed.flame.ts", "test:flame:solid": "NODE_ENV=production flame run --md-format=detailed --delay=none --node-options=\"--stack-size=65500\" ./solid/speed.flame.ts", "test:flame:vue": "NODE_ENV=production flame run --md-format=detailed --delay=none --node-options=\"--stack-size=65500\" ./vue/speed.flame.ts", - "test:perf": "NODE_ENV=production vitest bench --config ./vitest.config.ts", - "test:perf:react": "NODE_ENV=production vitest bench --config ./vitest.react.config.ts", - "test:perf:solid": "NODE_ENV=production vitest bench --config ./vitest.solid.config.ts", - "test:perf:vue": "NODE_ENV=production vitest bench --config ./vitest.vue.config.ts", + "test:perf": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.config.ts", + "test:perf:react": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.react.config.ts", + "test:perf:solid": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.solid.config.ts", + "test:perf:vue": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.vue.config.ts", "test:types": "pnpm run test:types:react && pnpm run test:types:solid && pnpm run test:types:vue", "test:types:react": "tsc -p ./react/tsconfig.json --noEmit", "test:types:solid": "tsc -p ./solid/tsconfig.json --noEmit", @@ -31,7 +31,7 @@ }, "devDependencies": { "@platformatic/flame": "^1.6.0", - "@codspeed/vitest-plugin": "^5.7.1", + "@codspeed/vitest-plugin": "^6.0.1", "@tanstack/router-plugin": "workspace:^", "@testing-library/react": "^16.2.0", "@vitejs/plugin-react": "^6.0.1", diff --git a/benchmarks/client-nav/react/speed.bench.ts b/benchmarks/client-nav/react/speed.bench.ts index fcc15b5fbc3..944f1827344 100644 --- a/benchmarks/client-nav/react/speed.bench.ts +++ b/benchmarks/client-nav/react/speed.bench.ts @@ -1,34 +1,19 @@ -import { afterAll, beforeAll, bench, describe } from 'vitest' +import { test } from 'vitest' import { setup } from './setup' -describe('client-nav', () => { - const test = setup() +test('client-nav', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores "suite hooks" like `beforeAll` and `afterAll`, - * so we use tinybench's `setup` and `teardown` options to run our setup and teardown logic. - * - * But CodSpeed calls the benchmarked function directly, bypassing `setup` and `teardown`, - * but it does support `beforeAll` and `afterAll`. - * - * So it looks like we're setting up in duplicate, but in reality, it's only running once per environment, as intended. - */ - - beforeAll(test.before) - afterAll(test.after) - - bench( + await bench( 'client-side navigation loop (react)', + { beforeAll: scenario.before, afterAll: scenario.after }, async () => { for (let i = 0; i < 10; i++) { - await test.tick() + await scenario.tick() } }, - { - warmupIterations: 100, - time: 10_000, - setup: test.before, - teardown: test.after, - }, - ) + ).run({ + warmupIterations: 100, + time: 10_000, + }) }) diff --git a/benchmarks/client-nav/react/vite.config.ts b/benchmarks/client-nav/react/vite.config.ts index ea85a49a21d..b9f8e5aeff7 100644 --- a/benchmarks/client-nav/react/vite.config.ts +++ b/benchmarks/client-nav/react/vite.config.ts @@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -30,9 +30,11 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (react)', watch: false, environment: 'jsdom', setupFiles: [`${rootDir}vitest.setup.ts`], + benchmark: { include: ['react/speed.bench.ts'] }, }, }) diff --git a/benchmarks/client-nav/scenarios/async-pipeline/react/speed.bench.ts b/benchmarks/client-nav/scenarios/async-pipeline/react/speed.bench.ts index c3f4c5231c6..65dab0781e3 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-async-pipeline', () => { - const test = setup() +test('client-async-pipeline', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-async-pipeline navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts index e36a5244b12..6fb15c70980 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/async-pipeline/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/async-pipeline/solid/speed.bench.ts index 96082e9963c..acef710469a 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-async-pipeline', () => { - const test = setup() +test('client-async-pipeline', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-async-pipeline navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts index 214da8042ee..0a19bb94be5 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/async-pipeline/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/async-pipeline/vue/speed.bench.ts index 193a3837df3..f0fd3e58dfd 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-async-pipeline', () => { - const test = setup() +test('client-async-pipeline', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-async-pipeline navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts index ce4fa7318ae..33bf8e01044 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/react/speed.bench.ts b/benchmarks/client-nav/scenarios/control-flow/react/speed.bench.ts index 7f1153021f6..d6f2190be73 100644 --- a/benchmarks/client-nav/scenarios/control-flow/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/control-flow/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-control-flow', () => { - const test = setup() +test('client-control-flow', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-control-flow navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts index 1eefca0fc3b..26b8f4adc88 100644 --- a/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/control-flow/solid/speed.bench.ts index a88093ca523..d803d2a313c 100644 --- a/benchmarks/client-nav/scenarios/control-flow/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/control-flow/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-control-flow', () => { - const test = setup() +test('client-control-flow', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-control-flow navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts index f4fa916154d..14a9b5abacd 100644 --- a/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/control-flow/vue/speed.bench.ts index 9a335cfb870..8a019945c74 100644 --- a/benchmarks/client-nav/scenarios/control-flow/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/control-flow/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-control-flow', () => { - const test = setup() +test('client-control-flow', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-control-flow navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts index 3c2750d2a6b..dc5c68a3293 100644 --- a/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/react/speed.bench.ts b/benchmarks/client-nav/scenarios/head/react/speed.bench.ts index 97c76a1a115..d0d731a09f3 100644 --- a/benchmarks/client-nav/scenarios/head/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/head/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-head', () => { - const test = setup() +test('client-head', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-head navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/head/react/vite.config.ts b/benchmarks/client-nav/scenarios/head/react/vite.config.ts index 7c8d6d4c150..29d780549cb 100644 --- a/benchmarks/client-nav/scenarios/head/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/head/solid/speed.bench.ts index 075e7673de7..ca156c950b3 100644 --- a/benchmarks/client-nav/scenarios/head/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/head/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-head', () => { - const test = setup() +test('client-head', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-head navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/head/solid/vite.config.ts b/benchmarks/client-nav/scenarios/head/solid/vite.config.ts index 986b2de2b0d..8bf0a1a3b77 100644 --- a/benchmarks/client-nav/scenarios/head/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/head/vue/speed.bench.ts index 7080b4ea7d7..d188a9dd7a1 100644 --- a/benchmarks/client-nav/scenarios/head/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/head/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-head', () => { - const test = setup() +test('client-head', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-head navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/head/vue/vite.config.ts b/benchmarks/client-nav/scenarios/head/vue/vite.config.ts index bb1126d85f8..ce04382faff 100644 --- a/benchmarks/client-nav/scenarios/head/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/react/speed.bench.ts b/benchmarks/client-nav/scenarios/history/react/speed.bench.ts index 9192258b663..6ec7031857d 100644 --- a/benchmarks/client-nav/scenarios/history/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/history/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-history', () => { - const test = setup() +test('client-history', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-history navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/history/react/vite.config.ts b/benchmarks/client-nav/scenarios/history/react/vite.config.ts index bdbde9c668d..2cc12a78d54 100644 --- a/benchmarks/client-nav/scenarios/history/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/history/solid/speed.bench.ts index d7f4fd898d7..56af035b2b9 100644 --- a/benchmarks/client-nav/scenarios/history/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/history/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-history', () => { - const test = setup() +test('client-history', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-history navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/history/solid/vite.config.ts b/benchmarks/client-nav/scenarios/history/solid/vite.config.ts index 4da589ff0e7..9779b445c57 100644 --- a/benchmarks/client-nav/scenarios/history/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/history/vue/speed.bench.ts index a378e45ac57..3d36ac4cfa8 100644 --- a/benchmarks/client-nav/scenarios/history/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/history/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-history', () => { - const test = setup() +test('client-history', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-history navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/history/vue/vite.config.ts b/benchmarks/client-nav/scenarios/history/vue/vite.config.ts index c5f1ca98070..b4492bee9b3 100644 --- a/benchmarks/client-nav/scenarios/history/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/hydration/react/hydration.test.ts b/benchmarks/client-nav/scenarios/hydration/react/hydration.test.ts index 4217b66af02..7e466cbaedd 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/hydration.test.ts +++ b/benchmarks/client-nav/scenarios/hydration/react/hydration.test.ts @@ -36,23 +36,6 @@ test('restores data and context into fresh DOMs and includes follow-up renders', expect(schedulerTasks.size).toBe(1) }) -test('installs per-iteration preparation for the ordinary Vitest runner', async () => { - const scenario = setup() - const task: Parameters[0] = { - opts: {}, - } - scenario.installIterationHooks(task) - for (let iteration = 0; iteration < 2; iteration++) { - await task.opts.beforeEach!() - try { - expect(scenario.snapshot().diagnostics.mounted).toBe(false) - await scenario.run() - } finally { - await task.opts.afterEach!() - } - } -}) - test('rejects an empty measurement and still releases its sample', async () => { const scenario = setup() await scenario.before() diff --git a/benchmarks/client-nav/scenarios/hydration/react/project.json b/benchmarks/client-nav/scenarios/hydration/react/project.json index ece8f2de66a..ca23838c0f3 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/project.json +++ b/benchmarks/client-nav/scenarios/hydration/react/project.json @@ -25,7 +25,7 @@ "cache": false, "dependsOn": ["build:client"], "options": { - "command": "NODE_ENV=production vitest bench --run --config ./scenarios/hydration/react/vite.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --run --config ./scenarios/hydration/react/vite.config.ts", "cwd": "benchmarks/client-nav" } }, diff --git a/benchmarks/client-nav/scenarios/hydration/react/setup.ts b/benchmarks/client-nav/scenarios/hydration/react/setup.ts index 8a6aa3286f8..7c588af3fd4 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/setup.ts +++ b/benchmarks/client-nav/scenarios/hydration/react/setup.ts @@ -9,13 +9,6 @@ import type { FixtureArtifact } from './fixture' import type * as Client from './src/client' type ClientApp = typeof Client -type TaskHooks = { - opts: { - beforeEach?: () => void | Promise - afterEach?: () => void | Promise - } -} - const turn = () => new Promise((resolve) => setImmediate(resolve)) // React's scheduler ends a time slice once performance.now() has advanced 5 ms. @@ -319,11 +312,5 @@ export function setup({ countRenders = false } = {}) { after, snapshot, schedulerTasks, - // Vitest passes setup to the Tinybench Bench, where it runs once per - // warmup/run stage. Install the Task's public per-iteration hooks there. - installIterationHooks(task: TaskHooks) { - task.opts.beforeEach = before - task.opts.afterEach = after - }, } } diff --git a/benchmarks/client-nav/scenarios/hydration/react/speed.bench.ts b/benchmarks/client-nav/scenarios/hydration/react/speed.bench.ts index 6f6142b9dec..643877760e2 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/hydration/react/speed.bench.ts @@ -1,23 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' import { setup } from './setup' -describe('client-hydration', () => { +test('client-hydration', async ({ bench }) => { const scenario = setup() - // CodSpeed uses suite hooks; ordinary Vitest uses the Tinybench Task hooks - // installed below. Both prepare and dispose every sample outside timing. - beforeEach(scenario.before) - afterEach(scenario.after) - bench( + + await bench( 'hydrate restored route state and mixed Links (react)', + { beforeEach: scenario.before, afterEach: scenario.after }, async () => { await scenario.run() }, - { - setup: scenario.installIterationHooks, - time: 5000, - warmupTime: 1000, - warmupIterations: 20, - throws: true, - }, - ) + ).run({ + time: 5000, + warmupTime: 1000, + warmupIterations: 20, + throws: true, + }) }) diff --git a/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts b/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts index 62ab87115bf..4833147aa22 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts @@ -2,7 +2,10 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' export default defineConfig({ root: fileURLToPath(new URL('.', import.meta.url)), @@ -26,6 +29,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav hydration (react)', watch: false, environment: 'node', diff --git a/benchmarks/client-nav/scenarios/hydration/solid/hydration.test.ts b/benchmarks/client-nav/scenarios/hydration/solid/hydration.test.ts index ca519d98bb7..4e5f3208ca5 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/hydration.test.ts +++ b/benchmarks/client-nav/scenarios/hydration/solid/hydration.test.ts @@ -50,21 +50,17 @@ test('restores fresh DOMs and route state and completes hash-link reactivity', a } }) -test('installs per-iteration preparation for the ordinary Vitest runner', async () => { +test('prepares every sample without counting diagnostics', async () => { const scenario = setup() - const task: Parameters[0] = { - opts: {}, - } - scenario.installIterationHooks(task) for (let iteration = 0; iteration < 2; iteration++) { - await task.opts.beforeEach!() + await scenario.before() try { expect(scenario.snapshot().diagnostics.mounted).toBe(false) expect(scenario.snapshot().diagnostics.clicks).toBe(0) await scenario.run() expect(scenario.snapshot().diagnostics.hashEvaluations).toBe(0) } finally { - await task.opts.afterEach!() + await scenario.after() } } }) diff --git a/benchmarks/client-nav/scenarios/hydration/solid/project.json b/benchmarks/client-nav/scenarios/hydration/solid/project.json index 978fdc6bf73..1fa162771b6 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/project.json +++ b/benchmarks/client-nav/scenarios/hydration/solid/project.json @@ -25,7 +25,7 @@ "cache": false, "dependsOn": ["build:client"], "options": { - "command": "NODE_ENV=production vitest bench --run --config ./scenarios/hydration/solid/vite.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --run --config ./scenarios/hydration/solid/vite.config.ts", "cwd": "benchmarks/client-nav" } }, diff --git a/benchmarks/client-nav/scenarios/hydration/solid/setup.ts b/benchmarks/client-nav/scenarios/hydration/solid/setup.ts index 29a86d67434..ebdbc8e9b2c 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/setup.ts +++ b/benchmarks/client-nav/scenarios/hydration/solid/setup.ts @@ -8,13 +8,6 @@ import type { FixtureArtifact } from './fixture' import type * as Client from './src/client' type ClientApp = typeof Client -type TaskHooks = { - opts: { - beforeEach?: () => void | Promise - afterEach?: () => void | Promise - } -} - const turn = () => new Promise((resolve) => setImmediate(resolve)) const maxSettleTurns = 100 @@ -329,11 +322,5 @@ export function setup({ countUpdates = false } = {}) { run, after, snapshot, - // Vitest's Bench setup runs once per warmup/run stage. Install Tinybench's - // public Task hooks to prepare and dispose outside every measured call. - installIterationHooks(task: TaskHooks) { - task.opts.beforeEach = before - task.opts.afterEach = after - }, } } diff --git a/benchmarks/client-nav/scenarios/hydration/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/hydration/solid/speed.bench.ts index 1f91ec00f38..b386cb82155 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/hydration/solid/speed.bench.ts @@ -1,23 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' import { setup } from './setup' -describe('client-hydration', () => { +test('client-hydration', async ({ bench }) => { const scenario = setup() - // CodSpeed uses suite hooks; ordinary Vitest uses the Tinybench Task hooks - // installed below. Both prepare and dispose every sample outside timing. - beforeEach(scenario.before) - afterEach(scenario.after) - bench( + + await bench( 'hydrate restored route state and mixed Links (solid)', + { beforeEach: scenario.before, afterEach: scenario.after }, async () => { await scenario.run() }, - { - setup: scenario.installIterationHooks, - time: 5000, - warmupTime: 1000, - warmupIterations: 20, - throws: true, - }, - ) + ).run({ + time: 5000, + warmupTime: 1000, + warmupIterations: 20, + throws: true, + }) }) diff --git a/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts b/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts index 16e5ff95aa9..520b52c0934 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts @@ -2,7 +2,10 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' export default defineConfig({ root: fileURLToPath(new URL('.', import.meta.url)), @@ -28,6 +31,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav hydration (solid)', watch: false, environment: 'node', diff --git a/benchmarks/client-nav/scenarios/link-churn/react/speed.bench.ts b/benchmarks/client-nav/scenarios/link-churn/react/speed.bench.ts index 05197319b88..ca0b370528a 100644 --- a/benchmarks/client-nav/scenarios/link-churn/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/link-churn/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-link-churn', () => { - const test = setup() +test('client-link-churn', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-link-churn navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts index 344974ebf90..842dfcdd9f4 100644 --- a/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/link-churn/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/link-churn/solid/speed.bench.ts index 9efdb6e3f88..80c4aaa6fd0 100644 --- a/benchmarks/client-nav/scenarios/link-churn/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/link-churn/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-link-churn', () => { - const test = setup() +test('client-link-churn', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-link-churn navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts index 37718a2d6a1..1c92f8b14f3 100644 --- a/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/link-churn/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/link-churn/vue/speed.bench.ts index 4fbbaf4ca06..dea511c24c9 100644 --- a/benchmarks/client-nav/scenarios/link-churn/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/link-churn/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-link-churn', () => { - const test = setup() +test('client-link-churn', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-link-churn navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts index 8f56734e04e..b8ba47900e1 100644 --- a/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/react/speed.bench.ts b/benchmarks/client-nav/scenarios/links/react/speed.bench.ts index 08923089017..75f5f725d4e 100644 --- a/benchmarks/client-nav/scenarios/links/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/links/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-links', () => { - const test = setup() +test('client-links', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-links navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/links/react/vite.config.ts b/benchmarks/client-nav/scenarios/links/react/vite.config.ts index 69de10b5b7a..35980471fc4 100644 --- a/benchmarks/client-nav/scenarios/links/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/links/solid/speed.bench.ts index a3d690b4231..fc7f3e71e78 100644 --- a/benchmarks/client-nav/scenarios/links/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/links/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-links', () => { - const test = setup() +test('client-links', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-links navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/links/solid/vite.config.ts b/benchmarks/client-nav/scenarios/links/solid/vite.config.ts index e37342ffc37..ed64b285095 100644 --- a/benchmarks/client-nav/scenarios/links/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/links/vue/speed.bench.ts index e2d3f7c47a4..2ace7a84095 100644 --- a/benchmarks/client-nav/scenarios/links/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/links/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-links', () => { - const test = setup() +test('client-links', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-links navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/links/vue/vite.config.ts b/benchmarks/client-nav/scenarios/links/vue/vite.config.ts index ad89a49d70d..b52a0a71c71 100644 --- a/benchmarks/client-nav/scenarios/links/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/react/speed.bench.ts b/benchmarks/client-nav/scenarios/loaders/react/speed.bench.ts index f5a51b29be3..8bcc53b88ea 100644 --- a/benchmarks/client-nav/scenarios/loaders/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/loaders/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-loaders', () => { - const test = setup() +test('client-loaders', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-loaders navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts index 818b2241302..afdcefe5087 100644 --- a/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/loaders/solid/speed.bench.ts index 9f3bd397dbb..953a17b31ab 100644 --- a/benchmarks/client-nav/scenarios/loaders/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/loaders/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-loaders', () => { - const test = setup() +test('client-loaders', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-loaders navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts index 90584d3b7e6..07a36dd9fc1 100644 --- a/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/loaders/vue/speed.bench.ts index 819fe020b0a..1ae2f89a567 100644 --- a/benchmarks/client-nav/scenarios/loaders/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/loaders/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-loaders', () => { - const test = setup() +test('client-loaders', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-loaders navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts index ecf4cce139f..87f4910e490 100644 --- a/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/react/speed.bench.ts b/benchmarks/client-nav/scenarios/mount/react/speed.bench.ts index 2d675ff259e..6c3a64b0268 100644 --- a/benchmarks/client-nav/scenarios/mount/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/mount/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-mount', () => { - const test = setup() +test('client-mount', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-mount loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/mount/react/vite.config.ts b/benchmarks/client-nav/scenarios/mount/react/vite.config.ts index e197d33a9e0..e0df92562c4 100644 --- a/benchmarks/client-nav/scenarios/mount/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/mount/solid/speed.bench.ts index eaf7f1ed340..236f875f571 100644 --- a/benchmarks/client-nav/scenarios/mount/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/mount/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-mount', () => { - const test = setup() +test('client-mount', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-mount loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts b/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts index 5b586dd1289..d4a304f7f65 100644 --- a/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/mount/vue/speed.bench.ts index f5538dd49c2..d9268ba91bd 100644 --- a/benchmarks/client-nav/scenarios/mount/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/mount/vue/speed.bench.ts @@ -1,32 +1,15 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-mount', () => { - const test = setup() +test('client-mount', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( - 'client-mount loop (vue)', - async () => { - for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() - } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, - }, - ) + await bench('client-mount loop (vue)', benchLifecycle(scenario), async () => { + for (let i = 0; i < ticksPerIteration; i++) { + await scenario.tick() + } + await scenario.finishBatch() + }).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts b/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts index 8d4005f3394..e1dfeb810c6 100644 --- a/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/react/speed.bench.ts b/benchmarks/client-nav/scenarios/nested-params/react/speed.bench.ts index 3dfe93c1170..fa5809c1fda 100644 --- a/benchmarks/client-nav/scenarios/nested-params/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/nested-params/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-nested-params', () => { - const test = setup() +test('client-nested-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-nested-params navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts index a99060bf1c2..2b0899e7119 100644 --- a/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/nested-params/solid/speed.bench.ts index dc7ec11f6b1..2c64d9a2212 100644 --- a/benchmarks/client-nav/scenarios/nested-params/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/nested-params/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-nested-params', () => { - const test = setup() +test('client-nested-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-nested-params navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts index 9897e2c1994..bfbea0b0b9d 100644 --- a/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/nested-params/vue/speed.bench.ts index fcb336d1dbf..bd3e82e0700 100644 --- a/benchmarks/client-nav/scenarios/nested-params/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/nested-params/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-nested-params', () => { - const test = setup() +test('client-nested-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-nested-params navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts index 0d74eb7a7c5..072ea3d2ba1 100644 --- a/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/react/speed.bench.ts b/benchmarks/client-nav/scenarios/preload/react/speed.bench.ts index 5b188a0a0b4..5c210b2fd73 100644 --- a/benchmarks/client-nav/scenarios/preload/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/preload/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-preload', () => { - const test = setup() +test('client-preload', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-preload interaction loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/preload/react/vite.config.ts b/benchmarks/client-nav/scenarios/preload/react/vite.config.ts index 8a41fc8707e..6aa7a12e5b5 100644 --- a/benchmarks/client-nav/scenarios/preload/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/preload/solid/speed.bench.ts index 267c9fd41dd..f835b4a7b9a 100644 --- a/benchmarks/client-nav/scenarios/preload/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/preload/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-preload', () => { - const test = setup() +test('client-preload', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-preload interaction loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts b/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts index 07014e61242..7feee6b21c3 100644 --- a/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/preload/vue/speed.bench.ts index 38a2e9e6640..e0ec83619bf 100644 --- a/benchmarks/client-nav/scenarios/preload/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/preload/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-preload', () => { - const test = setup() +test('client-preload', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-preload interaction loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts b/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts index 8d00e663786..f97d0cbbab4 100644 --- a/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/react/speed.bench.ts b/benchmarks/client-nav/scenarios/rewrites/react/speed.bench.ts index 8e79c6db7ef..dd1b6f36863 100644 --- a/benchmarks/client-nav/scenarios/rewrites/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/rewrites/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-rewrites', () => { - const test = setup() +test('client-rewrites', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-rewrites navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts index e79e8522e95..41ce58e294c 100644 --- a/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/rewrites/solid/speed.bench.ts index cf70bcaa401..9c4313e2ffb 100644 --- a/benchmarks/client-nav/scenarios/rewrites/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/rewrites/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-rewrites', () => { - const test = setup() +test('client-rewrites', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-rewrites navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts index c9e99b7d602..3ce56e383b1 100644 --- a/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/rewrites/vue/speed.bench.ts index 2dc9eb2679c..e96aff39ebb 100644 --- a/benchmarks/client-nav/scenarios/rewrites/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/rewrites/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-rewrites', () => { - const test = setup() +test('client-rewrites', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-rewrites navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts index 1a795a4e1d7..c4f384c2dc3 100644 --- a/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/react/speed.bench.ts b/benchmarks/client-nav/scenarios/route-tree-scale/react/speed.bench.ts index 337ba35b736..6f4b448775c 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-route-tree-scale', () => { - const test = setup() +test('client-route-tree-scale', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-route-tree-scale navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts index 0f588fda53a..54d5d088608 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/route-tree-scale/solid/speed.bench.ts index 545b5016174..9244ef13501 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-route-tree-scale', () => { - const test = setup() +test('client-route-tree-scale', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-route-tree-scale navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts index 542ede131bd..71233caab50 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,6 +43,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/route-tree-scale/vue/speed.bench.ts index 93652315795..331e8e008fb 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-route-tree-scale', () => { - const test = setup() +test('client-route-tree-scale', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-route-tree-scale navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts index 189ba1de99b..44679fce0b1 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,6 +42,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/react/speed.bench.ts b/benchmarks/client-nav/scenarios/search-params/react/speed.bench.ts index 5bdd994e32b..0b38f7bddbf 100644 --- a/benchmarks/client-nav/scenarios/search-params/react/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/search-params/react/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-search-params', () => { - const test = setup() +test('client-search-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-search-params navigation loop (react)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts index 0318a108155..4c714834af5 100644 --- a/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -34,6 +37,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/solid/speed.bench.ts b/benchmarks/client-nav/scenarios/search-params/solid/speed.bench.ts index ea0baa10988..caa626c5969 100644 --- a/benchmarks/client-nav/scenarios/search-params/solid/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/search-params/solid/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-search-params', () => { - const test = setup() +test('client-search-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-search-params navigation loop (solid)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts index 511fd494665..f7be053fa82 100644 --- a/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,6 +40,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/vue/speed.bench.ts b/benchmarks/client-nav/scenarios/search-params/vue/speed.bench.ts index c82efd49c98..728d2779e89 100644 --- a/benchmarks/client-nav/scenarios/search-params/vue/speed.bench.ts +++ b/benchmarks/client-nav/scenarios/search-params/vue/speed.bench.ts @@ -1,32 +1,19 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' +import { test } from 'vitest' +import { benchLifecycle } from '../../../../cpu-simulation' import { benchOptions, ticksPerIteration } from '../shared' import { setup } from './setup' -describe('client-search-params', () => { - const test = setup() +test('client-search-params', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores suite hooks, so Tinybench uses the `setup` - * and `teardown` options below. CodSpeed bypasses those options but supports - * `beforeEach` and `afterEach`. Only one lifecycle path runs in either - * environment, and every measured invocation receives fresh application state. - */ - - beforeEach(test.before) - afterEach(test.after) - - bench( + await bench( 'client-search-params navigation loop (vue)', + benchLifecycle(scenario), async () => { for (let i = 0; i < ticksPerIteration; i++) { - await test.tick() + await scenario.tick() } - await test.finishBatch() - }, - { - ...benchOptions, - setup: test.before, - teardown: test.after, + await scenario.finishBatch() }, - ) + ).run(benchOptions) }) diff --git a/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts index 27490b276ab..46a6d002cca 100644 --- a/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts @@ -4,7 +4,10 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -36,6 +39,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/solid/speed.bench.ts b/benchmarks/client-nav/solid/speed.bench.ts index 34791180ce0..d629da17a86 100644 --- a/benchmarks/client-nav/solid/speed.bench.ts +++ b/benchmarks/client-nav/solid/speed.bench.ts @@ -1,34 +1,19 @@ -import { afterAll, beforeAll, bench, describe } from 'vitest' +import { test } from 'vitest' import { setup } from './setup' -describe('client-nav', () => { - const test = setup() +test('client-nav', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores "suite hooks" like `beforeAll` and `afterAll`, - * so we use tinybench's `setup` and `teardown` options to run our setup and teardown logic. - * - * But CodSpeed calls the benchmarked function directly, bypassing `setup` and `teardown`, - * but it does support `beforeAll` and `afterAll`. - * - * So it looks like we're setting up in duplicate, but in reality, it's only running once per environment, as intended. - */ - - beforeAll(test.before) - afterAll(test.after) - - bench( + await bench( 'client-side navigation loop (solid)', + { beforeAll: scenario.before, afterAll: scenario.after }, async () => { for (let i = 0; i < 10; i++) { - await test.tick() + await scenario.tick() } }, - { - warmupIterations: 100, - time: 10_000, - setup: test.before, - teardown: test.after, - }, - ) + ).run({ + warmupIterations: 100, + time: 10_000, + }) }) diff --git a/benchmarks/client-nav/solid/vite.config.ts b/benchmarks/client-nav/solid/vite.config.ts index 1dd8e1e15ce..d0b21c1d6bd 100644 --- a/benchmarks/client-nav/solid/vite.config.ts +++ b/benchmarks/client-nav/solid/vite.config.ts @@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -33,10 +33,12 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (solid)', watch: false, environment: 'jsdom', setupFiles: [`${rootDir}vitest.setup.ts`], + benchmark: { include: ['solid/speed.bench.ts'] }, server: { deps: { inline: [/@solidjs/, /@tanstack\/solid-store/], diff --git a/benchmarks/client-nav/vue/speed.bench.ts b/benchmarks/client-nav/vue/speed.bench.ts index f9e532f5ba9..503e91e7b78 100644 --- a/benchmarks/client-nav/vue/speed.bench.ts +++ b/benchmarks/client-nav/vue/speed.bench.ts @@ -1,34 +1,19 @@ -import { afterAll, beforeAll, bench, describe } from 'vitest' +import { test } from 'vitest' import { setup } from './setup' -describe('client-nav', () => { - const test = setup() +test('client-nav', async ({ bench }) => { + const scenario = setup() - /** - * Running `vitest bench` ignores "suite hooks" like `beforeAll` and `afterAll`, - * so we use tinybench's `setup` and `teardown` options to run our setup and teardown logic. - * - * But CodSpeed calls the benchmarked function directly, bypassing `setup` and `teardown`, - * but it does support `beforeAll` and `afterAll`. - * - * So it looks like we're setting up in duplicate, but in reality, it's only running once per environment, as intended. - */ - - beforeAll(test.before) - afterAll(test.after) - - bench( + await bench( 'client-side navigation loop (vue)', + { beforeAll: scenario.before, afterAll: scenario.after }, async () => { for (let i = 0; i < 10; i++) { - await test.tick() + await scenario.tick() } }, - { - warmupIterations: 100, - time: 10_000, - setup: test.before, - teardown: test.after, - }, - ) + ).run({ + warmupIterations: 100, + time: 10_000, + }) }) diff --git a/benchmarks/client-nav/vue/vite.config.ts b/benchmarks/client-nav/vue/vite.config.ts index 7abe24b4559..f0abf490ac0 100644 --- a/benchmarks/client-nav/vue/vite.config.ts +++ b/benchmarks/client-nav/vue/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -32,9 +32,11 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (vue)', watch: false, environment: 'jsdom', setupFiles: [`${rootDir}vitest.setup.ts`], + benchmark: { include: ['vue/speed.bench.ts'] }, }, }) diff --git a/benchmarks/cpu-simulation.ts b/benchmarks/cpu-simulation.ts index 7e16bf4c5a0..87a60b7364e 100644 --- a/benchmarks/cpu-simulation.ts +++ b/benchmarks/cpu-simulation.ts @@ -1,9 +1,23 @@ +function codspeedRunnerMode() { + return process.env.CODSPEED_ENV === undefined + ? undefined + : process.env.CODSPEED_RUNNER_MODE +} + +/** + * Whether CodSpeed's simulation or memory instrument drives the run. Both + * measure one invocation after a few warmup calls instead of sampling. + */ +export function isCodSpeedAnalysis() { + const mode = codspeedRunnerMode() + return ( + mode === 'simulation' || mode === 'instrumentation' || mode === 'memory' + ) +} + /** Extra worker flags for CodSpeed CPU simulation, not walltime benchmarks. */ export function cpuSimulationExecArgv() { - const mode = - process.env.CODSPEED_ENV === undefined - ? undefined - : process.env.CODSPEED_RUNNER_MODE + const mode = codspeedRunnerMode() if (mode === 'simulation' || mode === 'instrumentation') { // CodSpeed supplies --no-opt, which only disables TurboFan on Node 24. // Maglev can still compile and inline hot functions between measured runs. @@ -22,3 +36,25 @@ export function cpuSimulationExecArgv() { } return [] } + +/** + * Vitest 5 runs benchmarks inside tests with at least a 60 s timeout. + * Instrumented CodSpeed runs are far slower than native ones, so allow each + * benchmark test up to 10 minutes. + */ +export const benchTestTimeout = 10 * 60_000 + +/** + * Per-bench lifecycle for apps that a bench prepares and disposes outside + * timing. CodSpeed measures one invocation, so each invocation gets fresh + * state. Tinybench samples thousands of iterations and keeps one instance per + * warmup/run phase instead of preparing it for every iteration. + */ +export function benchLifecycle(hooks: { + before: () => Promise | void + after: () => Promise | void +}) { + return isCodSpeedAnalysis() + ? { beforeEach: hooks.before, afterEach: hooks.after } + : { beforeAll: hooks.before, afterAll: hooks.after } +} diff --git a/benchmarks/memory/README.md b/benchmarks/memory/README.md index 65a13f04a38..f9aa73e53cb 100644 --- a/benchmarks/memory/README.md +++ b/benchmarks/memory/README.md @@ -34,8 +34,8 @@ benchmarks/memory// One app per scenario; apps and bench names are stable once landed (CodSpeed continuity). Never grow an existing scenario for a new case — add a scenario. `setup.ts` imports the built app and exports the concrete workload; -`memory.bench.ts` registers `bench(...)` directly, and `memory.flame.ts` runs the -same workload through the Flame profiler. +`memory.bench.ts` registers it with Vitest's `bench` test fixture, and +`memory.flame.ts` runs the same workload through the Flame profiler. ## How the memory instrument executes a bench @@ -43,19 +43,21 @@ same workload through the Flame profiler. after a forced GC. Under plain `vitest bench` the suites only smoke-test: timing output is meaningless; real numbers come from CodSpeed. - Under CodSpeed the bench fn runs several warmup invocations plus the - measured one. Client suite hooks mount a fresh app before each invocation - and tear it down afterward, outside the measurement window. This prevents - warmup navigation history and caches from changing the starting state. - Module-level counters/LCGs keep generated URLs unique across invocations. -- Plain `vitest bench` never runs suite hooks (`beforeEach`/`afterEach`) and - only honors tinybench's `setup`/`teardown` options; the CodSpeed runner - does the exact opposite. Client benches therefore register **both** — in - any given mode exactly one pair runs. + measured one. The bench's `beforeEach`/`afterEach` hooks + (`memoryBenchHooks`) run around every invocation, outside the measurement + window: client workloads mount a fresh app before each invocation and tear + it down afterward. This prevents warmup navigation history and caches from + changing the starting state. Plain `vitest bench` runs the same hooks around + its warmup and measured iteration. Module-level counters/LCGs keep generated + URLs unique across invocations. +- Workload `run` functions must be `async` functions. CodSpeed's Vitest 5 + provider awaits only `AsyncFunction`s; a plain function that returns a + promise would be measured only up to its first suspension. - Worker flags live in `runtime.ts` and apply only to the CodSpeed memory instrument. They supplement the integration's predictable execution flags; the retained overrides are described below. -- Before each CodSpeed invocation, a setup hook yields to the event loop, - outside the measurement marker and before CodSpeed forces GC. Promise-only +- Before each CodSpeed invocation, the `beforeEach` hook yields to the event + loop, outside the measurement marker and before CodSpeed forces GC. Promise-only warmup chains can keep WeakRef targets alive through a collection in the same job. Client app setup also runs before the forced GC. - Do not force GC inside a measured request loop or poll `heapUsed` to choose diff --git a/benchmarks/memory/client/bench-utils.ts b/benchmarks/memory/client/bench-utils.ts index 0cbaedbd711..785e8fac7fb 100644 --- a/benchmarks/memory/client/bench-utils.ts +++ b/benchmarks/memory/client/bench-utils.ts @@ -1,3 +1,5 @@ +export { memoryBenchHooks } from '../turn' + export const memoryBenchOptions = { iterations: 1, warmupIterations: 1, diff --git a/benchmarks/memory/client/benchmark.ts b/benchmarks/memory/client/benchmark.ts index 8b877b07409..463047f4d95 100644 --- a/benchmarks/memory/client/benchmark.ts +++ b/benchmarks/memory/client/benchmark.ts @@ -1,6 +1,10 @@ export interface ClientMemoryWorkload { name: string before?: () => Promise | void + /** + * Must be an `async` function: CodSpeed's Vitest 5 provider awaits only + * `AsyncFunction`s and otherwise measures just the synchronous part. + */ run: () => Promise | void sanity: () => Promise | void after?: () => Promise | void diff --git a/benchmarks/memory/client/package.json b/benchmarks/memory/client/package.json index 2da6cb4ad8d..4dc62461832 100644 --- a/benchmarks/memory/client/package.json +++ b/benchmarks/memory/client/package.json @@ -22,7 +22,7 @@ "vue": "^3.5.16" }, "devDependencies": { - "@codspeed/vitest-plugin": "^5.7.1", + "@codspeed/vitest-plugin": "^6.0.1", "@datadog/pprof": "^5.13.2", "@platformatic/flame": "^1.6.0", "@testing-library/react": "^16.2.0", @@ -202,7 +202,7 @@ "build:react" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.react.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.react.config.ts", "cwd": "benchmarks/memory/client" } }, @@ -214,7 +214,7 @@ "build:solid" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.solid.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.solid.config.ts", "cwd": "benchmarks/memory/client" } }, @@ -226,7 +226,7 @@ "build:vue" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.vue.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.vue.config.ts", "cwd": "benchmarks/memory/client" } }, diff --git a/benchmarks/memory/client/scenarios/interrupted-navigations/react/memory.bench.ts b/benchmarks/memory/client/scenarios/interrupted-navigations/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/interrupted-navigations/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/interrupted-navigations/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/interrupted-navigations/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/interrupted-navigations/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/interrupted-navigations/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/interrupted-navigations/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/interrupted-navigations/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/interrupted-navigations/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/interrupted-navigations/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/interrupted-navigations/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/loader-data-retention/react/memory.bench.ts b/benchmarks/memory/client/scenarios/loader-data-retention/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/loader-data-retention/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/loader-data-retention/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/loader-data-retention/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/loader-data-retention/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/loader-data-retention/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/loader-data-retention/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/loader-data-retention/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/loader-data-retention/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/loader-data-retention/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/loader-data-retention/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/mount-unmount/react/memory.bench.ts b/benchmarks/memory/client/scenarios/mount-unmount/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/mount-unmount/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/mount-unmount/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/mount-unmount/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/mount-unmount/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/mount-unmount/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/mount-unmount/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/mount-unmount/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/mount-unmount/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/mount-unmount/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/mount-unmount/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/navigation-churn/react/memory.bench.ts b/benchmarks/memory/client/scenarios/navigation-churn/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/navigation-churn/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/navigation-churn/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/navigation-churn/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/navigation-churn/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/navigation-churn/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/navigation-churn/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/navigation-churn/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/navigation-churn/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/navigation-churn/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/navigation-churn/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/preload-churn/react/memory.bench.ts b/benchmarks/memory/client/scenarios/preload-churn/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/preload-churn/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/preload-churn/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/preload-churn/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/preload-churn/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/preload-churn/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/preload-churn/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/preload-churn/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/preload-churn/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/preload-churn/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/preload-churn/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/unique-location-churn/react/memory.bench.ts b/benchmarks/memory/client/scenarios/unique-location-churn/react/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/unique-location-churn/react/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/unique-location-churn/react/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/unique-location-churn/solid/memory.bench.ts b/benchmarks/memory/client/scenarios/unique-location-churn/solid/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/unique-location-churn/solid/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/unique-location-churn/solid/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/scenarios/unique-location-churn/vue/memory.bench.ts b/benchmarks/memory/client/scenarios/unique-location-churn/vue/memory.bench.ts index 85a1f11ee6f..43ab822de38 100644 --- a/benchmarks/memory/client/scenarios/unique-location-churn/vue/memory.bench.ts +++ b/benchmarks/memory/client/scenarios/unique-location-churn/vue/memory.bench.ts @@ -1,21 +1,14 @@ -import { afterEach, beforeEach, bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-client/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-client/bench-utils' import { workload } from './setup' await workload.sanity() -describe('memory', () => { - if (workload.before && workload.after) { - beforeEach(workload.before) - afterEach(workload.after) - - bench(workload.name, workload.run, { - ...memoryBenchOptions, - setup: workload.before, - teardown: workload.after, - }) - return - } - - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(workload), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/client/vitest.setup.ts b/benchmarks/memory/client/vitest.setup.ts index 5f78f1a7d19..ce3127275ae 100644 --- a/benchmarks/memory/client/vitest.setup.ts +++ b/benchmarks/memory/client/vitest.setup.ts @@ -1,6 +1,3 @@ -import { beforeEach } from 'vitest' -import { endMemoryTurn, isMemoryInstrumented } from '../turn' - // @ts-expect-error global.IS_REACT_ACT_ENVIRONMENT = true @@ -10,7 +7,3 @@ window.scrollTo = scrollTo globalThis.scrollTo = scrollTo export {} - -if (isMemoryInstrumented()) { - beforeEach(endMemoryTurn) -} diff --git a/benchmarks/memory/runtime.ts b/benchmarks/memory/runtime.ts index 85f84d922be..77ba91618e2 100644 --- a/benchmarks/memory/runtime.ts +++ b/benchmarks/memory/runtime.ts @@ -1,4 +1,5 @@ import { fileURLToPath } from 'node:url' +import { benchTestTimeout } from '../cpu-simulation' import { isMemoryInstrumented } from './turn' /** Worker settings for the CodSpeed memory instrument. */ @@ -28,9 +29,10 @@ export function memoryConfig(side: 'client' | 'server') { const execArgv = memoryExecArgv() return { execArgv, + testTimeout: benchTestTimeout, setupFiles: - side === 'client' || isMemoryInstrumented() - ? [fileURLToPath(new URL(`./${side}/vitest.setup.ts`, import.meta.url))] + side === 'client' + ? [fileURLToPath(new URL('./client/vitest.setup.ts', import.meta.url))] : [], } } diff --git a/benchmarks/memory/server/bench-utils.ts b/benchmarks/memory/server/bench-utils.ts index 8893d5be4ba..9caaf633849 100644 --- a/benchmarks/memory/server/bench-utils.ts +++ b/benchmarks/memory/server/bench-utils.ts @@ -1,3 +1,5 @@ +export { memoryBenchHooks } from '../turn' + export interface StartRequestHandler { fetch: (request: Request) => Promise | Response } diff --git a/benchmarks/memory/server/benchmark.ts b/benchmarks/memory/server/benchmark.ts index 301a9f956d8..9b8dc2c76fe 100644 --- a/benchmarks/memory/server/benchmark.ts +++ b/benchmarks/memory/server/benchmark.ts @@ -1,5 +1,9 @@ export interface ServerMemoryWorkload { name: string + /** + * Must be an `async` function: CodSpeed's Vitest 5 provider awaits only + * `AsyncFunction`s and otherwise measures just the synchronous part. + */ run: () => Promise | void } diff --git a/benchmarks/memory/server/package.json b/benchmarks/memory/server/package.json index 5d59987e68a..d09343c7b61 100644 --- a/benchmarks/memory/server/package.json +++ b/benchmarks/memory/server/package.json @@ -23,7 +23,7 @@ "vue": "^3.5.16" }, "devDependencies": { - "@codspeed/vitest-plugin": "^5.7.1", + "@codspeed/vitest-plugin": "^6.0.1", "@datadog/pprof": "^5.13.2", "@platformatic/flame": "^1.6.0", "@vitejs/plugin-react": "^6.0.1", @@ -208,7 +208,7 @@ "build:react" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.react.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.react.config.ts", "cwd": "benchmarks/memory/server" } }, @@ -220,7 +220,7 @@ "build:solid" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.solid.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.solid.config.ts", "cwd": "benchmarks/memory/server" } }, @@ -232,7 +232,7 @@ "build:vue" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.vue.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.vue.config.ts", "cwd": "benchmarks/memory/server" } }, diff --git a/benchmarks/memory/server/scenarios/aborted-requests/react/memory.bench.ts b/benchmarks/memory/server/scenarios/aborted-requests/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/aborted-requests/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/aborted-requests/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/aborted-requests/shared.ts b/benchmarks/memory/server/scenarios/aborted-requests/shared.ts index b5a61594baa..29eca99e00b 100644 --- a/benchmarks/memory/server/scenarios/aborted-requests/shared.ts +++ b/benchmarks/memory/server/scenarios/aborted-requests/shared.ts @@ -221,7 +221,7 @@ export function createWorkloadGroup( handler: StartRequestHandler, ) { const mode = abortedRequestModes[framework] - const run = () => runAbortedRequestLoop(handler, mode) + const run = async () => runAbortedRequestLoop(handler, mode) return { sanity: () => assertAbortedRequestsSanity(handler, mode), diff --git a/benchmarks/memory/server/scenarios/aborted-requests/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/aborted-requests/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/aborted-requests/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/aborted-requests/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/aborted-requests/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/aborted-requests/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/aborted-requests/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/aborted-requests/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/error-paths/react/memory.bench.ts b/benchmarks/memory/server/scenarios/error-paths/react/memory.bench.ts index 2780830cb27..a6f07b97bed 100644 --- a/benchmarks/memory/server/scenarios/error-paths/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[0]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/react/memory.error.bench.ts b/benchmarks/memory/server/scenarios/error-paths/react/memory.error.bench.ts index d41877e6ce2..89071137c38 100644 --- a/benchmarks/memory/server/scenarios/error-paths/react/memory.error.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/react/memory.error.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[2]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/react/memory.not-found.bench.ts b/benchmarks/memory/server/scenarios/error-paths/react/memory.not-found.bench.ts index 42d67b1164e..fa6a6693ed0 100644 --- a/benchmarks/memory/server/scenarios/error-paths/react/memory.not-found.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/react/memory.not-found.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[1]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/react/memory.unmatched.bench.ts b/benchmarks/memory/server/scenarios/error-paths/react/memory.unmatched.bench.ts index 6179e469dd1..b2c3d24200a 100644 --- a/benchmarks/memory/server/scenarios/error-paths/react/memory.unmatched.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/react/memory.unmatched.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[3]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/shared.ts b/benchmarks/memory/server/scenarios/error-paths/shared.ts index 966505f3a05..11ed293d227 100644 --- a/benchmarks/memory/server/scenarios/error-paths/shared.ts +++ b/benchmarks/memory/server/scenarios/error-paths/shared.ts @@ -136,7 +136,7 @@ export function createWorkloadGroup( framework: Framework, handler: StartRequestHandler, ) { - const runRedirect = () => + const runRedirect = async () => runSequentialRequestLoop(handler, { random: redirectRandom, iterations: errorPathsIterations, @@ -144,7 +144,7 @@ export function createWorkloadGroup( validateResponse: validateRedirectResponse, }) - const runNotFound = () => + const runNotFound = async () => runSequentialRequestLoop(handler, { random: notFoundRandom, iterations: errorPathsIterations, @@ -152,7 +152,7 @@ export function createWorkloadGroup( validateResponse: validateNotFoundResponse, }) - const runError = () => + const runError = async () => runSequentialRequestLoop(handler, { random: errorRandom, iterations: errorPathsIterations, @@ -160,7 +160,7 @@ export function createWorkloadGroup( validateResponse: validateErrorResponse, }) - const runUnmatched = () => + const runUnmatched = async () => runSequentialRequestLoop(handler, { random: unmatchedRandom, iterations: errorPathsIterations, diff --git a/benchmarks/memory/server/scenarios/error-paths/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/error-paths/solid/memory.bench.ts index 2780830cb27..a6f07b97bed 100644 --- a/benchmarks/memory/server/scenarios/error-paths/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[0]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/solid/memory.error.bench.ts b/benchmarks/memory/server/scenarios/error-paths/solid/memory.error.bench.ts index d41877e6ce2..89071137c38 100644 --- a/benchmarks/memory/server/scenarios/error-paths/solid/memory.error.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/solid/memory.error.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[2]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/solid/memory.not-found.bench.ts b/benchmarks/memory/server/scenarios/error-paths/solid/memory.not-found.bench.ts index 42d67b1164e..fa6a6693ed0 100644 --- a/benchmarks/memory/server/scenarios/error-paths/solid/memory.not-found.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/solid/memory.not-found.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[1]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/solid/memory.unmatched.bench.ts b/benchmarks/memory/server/scenarios/error-paths/solid/memory.unmatched.bench.ts index 6179e469dd1..b2c3d24200a 100644 --- a/benchmarks/memory/server/scenarios/error-paths/solid/memory.unmatched.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/solid/memory.unmatched.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[3]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/error-paths/vue/memory.bench.ts index 2780830cb27..a6f07b97bed 100644 --- a/benchmarks/memory/server/scenarios/error-paths/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[0]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/vue/memory.error.bench.ts b/benchmarks/memory/server/scenarios/error-paths/vue/memory.error.bench.ts index d41877e6ce2..89071137c38 100644 --- a/benchmarks/memory/server/scenarios/error-paths/vue/memory.error.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/vue/memory.error.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[2]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/vue/memory.not-found.bench.ts b/benchmarks/memory/server/scenarios/error-paths/vue/memory.not-found.bench.ts index 42d67b1164e..fa6a6693ed0 100644 --- a/benchmarks/memory/server/scenarios/error-paths/vue/memory.not-found.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/vue/memory.not-found.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[1]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/error-paths/vue/memory.unmatched.bench.ts b/benchmarks/memory/server/scenarios/error-paths/vue/memory.unmatched.bench.ts index 6179e469dd1..b2c3d24200a 100644 --- a/benchmarks/memory/server/scenarios/error-paths/vue/memory.unmatched.bench.ts +++ b/benchmarks/memory/server/scenarios/error-paths/vue/memory.unmatched.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() const workload = workloadGroup.workloads[3]! -describe('memory', () => { - bench(workload.name, workload.run, memoryBenchOptions) +test('memory', async ({ bench }) => { + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) }) diff --git a/benchmarks/memory/server/scenarios/peak-large-page/react/memory.bench.ts b/benchmarks/memory/server/scenarios/peak-large-page/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/peak-large-page/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/peak-large-page/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/peak-large-page/shared.ts b/benchmarks/memory/server/scenarios/peak-large-page/shared.ts index 486c025f5a4..085e576244e 100644 --- a/benchmarks/memory/server/scenarios/peak-large-page/shared.ts +++ b/benchmarks/memory/server/scenarios/peak-large-page/shared.ts @@ -48,7 +48,7 @@ export function createWorkloadGroup( framework: Framework, handler: StartRequestHandler, ) { - const run = () => + const run = async () => runSequentialRequestLoop(handler, { seed: benchmarkSeed, iterations: peakLargePageIterations, diff --git a/benchmarks/memory/server/scenarios/peak-large-page/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/peak-large-page/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/peak-large-page/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/peak-large-page/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/peak-large-page/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/peak-large-page/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/peak-large-page/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/peak-large-page/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/request-churn/react/memory.bench.ts b/benchmarks/memory/server/scenarios/request-churn/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/request-churn/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/request-churn/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/request-churn/shared.ts b/benchmarks/memory/server/scenarios/request-churn/shared.ts index 32125148cd8..b200c96ed66 100644 --- a/benchmarks/memory/server/scenarios/request-churn/shared.ts +++ b/benchmarks/memory/server/scenarios/request-churn/shared.ts @@ -62,7 +62,7 @@ export function createWorkloadGroup( return new Request(`http://localhost/items/${id}?q=${q}`, requestInit) } - const run = () => + const run = async () => runSequentialRequestLoop(handler, { random: benchmarkRandom, iterations: requestChurnIterations, diff --git a/benchmarks/memory/server/scenarios/request-churn/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/request-churn/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/request-churn/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/request-churn/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/request-churn/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/request-churn/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/request-churn/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/request-churn/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/serialization-payload/react/memory.bench.ts b/benchmarks/memory/server/scenarios/serialization-payload/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/serialization-payload/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/serialization-payload/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/serialization-payload/shared.ts b/benchmarks/memory/server/scenarios/serialization-payload/shared.ts index 7f40aeb9d21..14ec8f7e0a8 100644 --- a/benchmarks/memory/server/scenarios/serialization-payload/shared.ts +++ b/benchmarks/memory/server/scenarios/serialization-payload/shared.ts @@ -55,7 +55,7 @@ export function createWorkloadGroup( framework: Framework, handler: StartRequestHandler, ) { - const run = () => + const run = async () => runSequentialRequestLoop(handler, { seed: benchmarkSeed, iterations: serializationPayloadIterations, diff --git a/benchmarks/memory/server/scenarios/serialization-payload/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/serialization-payload/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/serialization-payload/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/serialization-payload/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/serialization-payload/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/serialization-payload/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/serialization-payload/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/serialization-payload/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/server-fn-churn/react/memory.bench.ts b/benchmarks/memory/server/scenarios/server-fn-churn/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/server-fn-churn/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/server-fn-churn/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/server-fn-churn/shared.ts b/benchmarks/memory/server/scenarios/server-fn-churn/shared.ts index 5fd1e226326..167b24d3b64 100644 --- a/benchmarks/memory/server/scenarios/server-fn-churn/shared.ts +++ b/benchmarks/memory/server/scenarios/server-fn-churn/shared.ts @@ -202,7 +202,7 @@ export async function createWorkloadGroup( handler: StartRequestHandler, ) { const urls = await discoverUrls(handler) - const run = () => + const run = async () => runSequentialRequestLoop(handler, { seed: benchmarkSeed, iterations: serverFnChurnIterations, diff --git a/benchmarks/memory/server/scenarios/server-fn-churn/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/server-fn-churn/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/server-fn-churn/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/server-fn-churn/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/server-fn-churn/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/server-fn-churn/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/server-fn-churn/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/server-fn-churn/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/streaming-peak/react/memory.bench.ts b/benchmarks/memory/server/scenarios/streaming-peak/react/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/streaming-peak/react/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/streaming-peak/react/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/streaming-peak/shared.ts b/benchmarks/memory/server/scenarios/streaming-peak/shared.ts index 01917c4743c..c027047408b 100644 --- a/benchmarks/memory/server/scenarios/streaming-peak/shared.ts +++ b/benchmarks/memory/server/scenarios/streaming-peak/shared.ts @@ -92,7 +92,7 @@ export function createWorkloadGroup( framework: Framework, handler: StartRequestHandler, ) { - const run = () => + const run = async () => runSequentialRequestLoop(handler, { seed: benchmarkSeed, iterations: streamingPeakIterations, diff --git a/benchmarks/memory/server/scenarios/streaming-peak/solid/memory.bench.ts b/benchmarks/memory/server/scenarios/streaming-peak/solid/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/streaming-peak/solid/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/streaming-peak/solid/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/scenarios/streaming-peak/vue/memory.bench.ts b/benchmarks/memory/server/scenarios/streaming-peak/vue/memory.bench.ts index 9a5c211feee..8b5f16ad633 100644 --- a/benchmarks/memory/server/scenarios/streaming-peak/vue/memory.bench.ts +++ b/benchmarks/memory/server/scenarios/streaming-peak/vue/memory.bench.ts @@ -1,11 +1,16 @@ -import { bench, describe } from 'vitest' -import { memoryBenchOptions } from '#memory-server/bench-utils' +import { test } from 'vitest' +import { + memoryBenchHooks, + memoryBenchOptions, +} from '#memory-server/bench-utils' import { workloadGroup } from './setup' await workloadGroup.sanity() -describe('memory', () => { +test('memory', async ({ bench }) => { for (const workload of workloadGroup.workloads) { - bench(workload.name, workload.run, memoryBenchOptions) + await bench(workload.name, memoryBenchHooks(), workload.run).run( + memoryBenchOptions, + ) } }) diff --git a/benchmarks/memory/server/vitest.setup.ts b/benchmarks/memory/server/vitest.setup.ts deleted file mode 100644 index be96c0067a6..00000000000 --- a/benchmarks/memory/server/vitest.setup.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { beforeEach } from 'vitest' -import { endMemoryTurn } from '../turn' - -beforeEach(endMemoryTurn) diff --git a/benchmarks/memory/turn.ts b/benchmarks/memory/turn.ts index 3ee6d53833a..08729685fe9 100644 --- a/benchmarks/memory/turn.ts +++ b/benchmarks/memory/turn.ts @@ -10,3 +10,25 @@ export function isMemoryInstrumented() { export function endMemoryTurn() { return new Promise((resolve) => setImmediate(resolve)) } + +/** + * Per-invocation bench hooks. CodSpeed runs them around every warmup + * invocation and the measured one, outside the measurement marker: the turn + * ends first, then the workload prepares fresh state before the forced GC. + */ +export function memoryBenchHooks( + workload: { + before?: () => Promise | void + after?: () => Promise | void + } = {}, +) { + return { + async beforeEach() { + if (isMemoryInstrumented()) { + await endMemoryTurn() + } + await workload.before?.() + }, + afterEach: workload.after, + } +} diff --git a/benchmarks/ssr/package.json b/benchmarks/ssr/package.json index a6ab62efa5b..20c18374680 100644 --- a/benchmarks/ssr/package.json +++ b/benchmarks/ssr/package.json @@ -15,7 +15,7 @@ "vue": "^3.5.16" }, "devDependencies": { - "@codspeed/vitest-plugin": "^5.7.1", + "@codspeed/vitest-plugin": "^6.0.1", "@vitejs/plugin-react": "^6.0.1", "@vitejs/plugin-vue-jsx": "^5.1.5", "@types/react": "catalog:", @@ -116,7 +116,7 @@ "build:vue" ], "options": { - "command": "NODE_ENV=production vitest bench", + "command": "NODE_ENV=production vitest bench --mode benchmark", "cwd": "benchmarks/ssr" } }, @@ -134,7 +134,7 @@ "build:react" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.react.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.react.config.ts", "cwd": "benchmarks/ssr" } }, @@ -145,7 +145,7 @@ "build:solid" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.solid.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.solid.config.ts", "cwd": "benchmarks/ssr" } }, @@ -156,7 +156,7 @@ "build:vue" ], "options": { - "command": "NODE_ENV=production vitest bench --config ./vitest.vue.config.ts", + "command": "NODE_ENV=production vitest bench --mode benchmark --config ./vitest.vue.config.ts", "cwd": "benchmarks/ssr" } }, diff --git a/benchmarks/ssr/react/speed.bench.ts b/benchmarks/ssr/react/speed.bench.ts index 419b1ccb363..6825a7ddfb6 100644 --- a/benchmarks/ssr/react/speed.bench.ts +++ b/benchmarks/ssr/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { runSsrRequestLoop } from '../bench-utils' import type { StartRequestHandler } from '../bench-utils' @@ -11,14 +11,12 @@ const { default: handler } = (await import( default: StartRequestHandler } -describe('ssr', () => { - bench( - 'ssr request loop (react)', - () => runSsrRequestLoop(handler, { seed: benchmarkSeed }), - { - warmupIterations: 100, - time: 10_000, - throws: true, - }, - ) +test('ssr', async ({ bench }) => { + await bench('ssr request loop (react)', async () => + runSsrRequestLoop(handler, { seed: benchmarkSeed }), + ).run({ + warmupIterations: 100, + time: 10_000, + throws: true, + }) }) diff --git a/benchmarks/ssr/react/vite.config.ts b/benchmarks/ssr/react/vite.config.ts index e607db366b2..db65212aabd 100644 --- a/benchmarks/ssr/react/vite.config.ts +++ b/benchmarks/ssr/react/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +24,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/react/speed.assets-linked-css-control.bench.ts b/benchmarks/ssr/scenarios/assets/react/speed.assets-linked-css-control.bench.ts index 6413559b92a..0496613afb6 100644 --- a/benchmarks/ssr/scenarios/assets/react/speed.assets-linked-css-control.bench.ts +++ b/benchmarks/ssr/scenarios/assets/react/speed.assets-linked-css-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets linked-css control (react)', - () => runAssetsLinkedControlLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets linked-css control (react)', async () => + runAssetsLinkedControlLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/react/speed.bench.ts b/benchmarks/ssr/scenarios/assets/react/speed.bench.ts index 5970b88f0b1..7dc57d89f1f 100644 --- a/benchmarks/ssr/scenarios/assets/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/assets/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets inline-css cdn (react)', - () => runAssetsInlineLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets inline-css cdn (react)', async () => + runAssetsInlineLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/react/vite.config.ts b/benchmarks/ssr/scenarios/assets/react/vite.config.ts index 5990bba6d3b..2a84ddef2ca 100644 --- a/benchmarks/ssr/scenarios/assets/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -29,6 +32,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/solid/speed.assets-linked-css-control.bench.ts b/benchmarks/ssr/scenarios/assets/solid/speed.assets-linked-css-control.bench.ts index 63fa209ac39..d159124a048 100644 --- a/benchmarks/ssr/scenarios/assets/solid/speed.assets-linked-css-control.bench.ts +++ b/benchmarks/ssr/scenarios/assets/solid/speed.assets-linked-css-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets linked-css control (solid)', - () => runAssetsLinkedControlLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets linked-css control (solid)', async () => + runAssetsLinkedControlLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/solid/speed.bench.ts b/benchmarks/ssr/scenarios/assets/solid/speed.bench.ts index fb5631a50e4..47f483df115 100644 --- a/benchmarks/ssr/scenarios/assets/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/assets/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets inline-css cdn (solid)', - () => runAssetsInlineLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets inline-css cdn (solid)', async () => + runAssetsInlineLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/solid/vite.config.ts b/benchmarks/ssr/scenarios/assets/solid/vite.config.ts index 3ee54e5ae29..11ff08419b0 100644 --- a/benchmarks/ssr/scenarios/assets/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -29,6 +32,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/vue/speed.assets-linked-css-control.bench.ts b/benchmarks/ssr/scenarios/assets/vue/speed.assets-linked-css-control.bench.ts index ae8712da75b..e56d41df6b5 100644 --- a/benchmarks/ssr/scenarios/assets/vue/speed.assets-linked-css-control.bench.ts +++ b/benchmarks/ssr/scenarios/assets/vue/speed.assets-linked-css-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets linked-css control (vue)', - () => runAssetsLinkedControlLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets linked-css control (vue)', async () => + runAssetsLinkedControlLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/vue/speed.bench.ts b/benchmarks/ssr/scenarios/assets/vue/speed.bench.ts index 5225e3dc665..3f77a0dcc13 100644 --- a/benchmarks/ssr/scenarios/assets/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/assets/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertAssetsScenario, assetsBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertAssetsScenario(handler) -describe('ssr', () => { - bench( - 'ssr assets inline-css cdn (vue)', - () => runAssetsInlineLoop(handler), - assetsBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr assets inline-css cdn (vue)', async () => + runAssetsInlineLoop(handler), + ).run(assetsBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/assets/vue/vite.config.ts b/benchmarks/ssr/scenarios/assets/vue/vite.config.ts index e664b9b02b8..f1a993b9d65 100644 --- a/benchmarks/ssr/scenarios/assets/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -29,6 +32,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/react/speed.bench.ts b/benchmarks/ssr/scenarios/before-load/react/speed.bench.ts index 09073687c03..8a4355a1682 100644 --- a/benchmarks/ssr/scenarios/before-load/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/before-load/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertBeforeLoadScenario, beforeLoadBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertBeforeLoadScenario(handler) -describe('ssr', () => { - bench( - 'ssr before-load chain (react)', - () => runBeforeLoadLoop(handler), - beforeLoadBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr before-load chain (react)', async () => + runBeforeLoadLoop(handler), + ).run(beforeLoadBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/before-load/react/vite.config.ts b/benchmarks/ssr/scenarios/before-load/react/vite.config.ts index 3fd72c5f1d0..289060e106b 100644 --- a/benchmarks/ssr/scenarios/before-load/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/solid/speed.bench.ts b/benchmarks/ssr/scenarios/before-load/solid/speed.bench.ts index 5f6e8baf8a4..27e0d3a64cf 100644 --- a/benchmarks/ssr/scenarios/before-load/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/before-load/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertBeforeLoadScenario, beforeLoadBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertBeforeLoadScenario(handler) -describe('ssr', () => { - bench( - 'ssr before-load chain (solid)', - () => runBeforeLoadLoop(handler), - beforeLoadBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr before-load chain (solid)', async () => + runBeforeLoadLoop(handler), + ).run(beforeLoadBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts b/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts index a20e32742e5..7b6bf093658 100644 --- a/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/vue/speed.bench.ts b/benchmarks/ssr/scenarios/before-load/vue/speed.bench.ts index d2cfd6814b0..8684c159eb8 100644 --- a/benchmarks/ssr/scenarios/before-load/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/before-load/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertBeforeLoadScenario, beforeLoadBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertBeforeLoadScenario(handler) -describe('ssr', () => { - bench( - 'ssr before-load chain (vue)', - () => runBeforeLoadLoop(handler), - beforeLoadBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr before-load chain (vue)', async () => + runBeforeLoadLoop(handler), + ).run(beforeLoadBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts b/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts index 093776869f8..8d1d10471c0 100644 --- a/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/react/speed.bench.ts b/benchmarks/ssr/scenarios/control-flow/react/speed.bench.ts index 3c0a3f502e8..899f4007995 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr redirect (react)', - () => runRedirectLoop(handler), +test('ssr', async ({ bench }) => { + await bench('ssr redirect (react)', async () => runRedirectLoop(handler)).run( controlFlowBenchOptions, ) }) diff --git a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-error-500.bench.ts b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-error-500.bench.ts index 3e117895d89..0a93c5eac34 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-error-500.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-error-500.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow error 500 (react)', - () => runErrorLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow error 500 (react)', async () => + runErrorLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-route-headers.bench.ts b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-route-headers.bench.ts index 566748735ed..53e09fd34e3 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-route-headers.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-route-headers.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow route headers (react)', - () => runRouteHeadersLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow route headers (react)', async () => + runRouteHeadersLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-unmatched-404.bench.ts b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-unmatched-404.bench.ts index b7c25a0bb2f..1cd7c1044ce 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-unmatched-404.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/speed.control-flow-unmatched-404.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow unmatched 404 (react)', - () => runUnmatchedLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow unmatched 404 (react)', async () => + runUnmatchedLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/react/speed.not-found.bench.ts b/benchmarks/ssr/scenarios/control-flow/react/speed.not-found.bench.ts index e56335c602d..1e8abfd3187 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/speed.not-found.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/speed.not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr not-found (react)', - () => runNotFoundLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr not-found (react)', async () => + runNotFoundLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts index 273d7d9d804..fb1f3c53468 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/solid/speed.bench.ts b/benchmarks/ssr/scenarios/control-flow/solid/speed.bench.ts index b76cd741dff..904b693e253 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr redirect (solid)', - () => runRedirectLoop(handler), +test('ssr', async ({ bench }) => { + await bench('ssr redirect (solid)', async () => runRedirectLoop(handler)).run( controlFlowBenchOptions, ) }) diff --git a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-error-500.bench.ts b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-error-500.bench.ts index 119f65c9ee2..57a2f0fbe92 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-error-500.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-error-500.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow error 500 (solid)', - () => runErrorLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow error 500 (solid)', async () => + runErrorLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-route-headers.bench.ts b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-route-headers.bench.ts index 8954e67986b..6581e92b39d 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-route-headers.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-route-headers.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow route headers (solid)', - () => runRouteHeadersLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow route headers (solid)', async () => + runRouteHeadersLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-unmatched-404.bench.ts b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-unmatched-404.bench.ts index d59282def9a..40f16793205 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-unmatched-404.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/speed.control-flow-unmatched-404.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow unmatched 404 (solid)', - () => runUnmatchedLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow unmatched 404 (solid)', async () => + runUnmatchedLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/solid/speed.not-found.bench.ts b/benchmarks/ssr/scenarios/control-flow/solid/speed.not-found.bench.ts index 66cf63fe790..efcb7cc2291 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/speed.not-found.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/speed.not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr not-found (solid)', - () => runNotFoundLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr not-found (solid)', async () => + runNotFoundLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts index c75c9574661..d19107ebc16 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/vue/speed.bench.ts b/benchmarks/ssr/scenarios/control-flow/vue/speed.bench.ts index e57ec26b52e..0b95f426f2c 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr redirect (vue)', - () => runRedirectLoop(handler), +test('ssr', async ({ bench }) => { + await bench('ssr redirect (vue)', async () => runRedirectLoop(handler)).run( controlFlowBenchOptions, ) }) diff --git a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-error-500.bench.ts b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-error-500.bench.ts index e118e1dd28c..262ca951af1 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-error-500.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-error-500.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow error 500 (vue)', - () => runErrorLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow error 500 (vue)', async () => + runErrorLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-route-headers.bench.ts b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-route-headers.bench.ts index 0bef524eaf1..bf8c90a8a15 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-route-headers.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-route-headers.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow route headers (vue)', - () => runRouteHeadersLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow route headers (vue)', async () => + runRouteHeadersLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-unmatched-404.bench.ts b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-unmatched-404.bench.ts index e29919dc561..d7f8ebeb9e8 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-unmatched-404.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/speed.control-flow-unmatched-404.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr control-flow unmatched 404 (vue)', - () => runUnmatchedLoop(handler), - controlFlowBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr control-flow unmatched 404 (vue)', async () => + runUnmatchedLoop(handler), + ).run(controlFlowBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/control-flow/vue/speed.not-found.bench.ts b/benchmarks/ssr/scenarios/control-flow/vue/speed.not-found.bench.ts index b2ab3af3c71..4b84fb594cf 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/speed.not-found.bench.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/speed.not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertControlFlowSanity, controlFlowBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertControlFlowSanity(handler) -describe('ssr', () => { - bench( - 'ssr not-found (vue)', - () => runNotFoundLoop(handler), +test('ssr', async ({ bench }) => { + await bench('ssr not-found (vue)', async () => runNotFoundLoop(handler)).run( controlFlowBenchOptions, ) }) diff --git a/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts index 1b77968d968..16253495560 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.bench.ts index c68d718262d..cb3f9f427c1 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw document (react)', - () => runGlobalMiddlewareDocumentLoop(handler), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw document (react)', async () => + runGlobalMiddlewareDocumentLoop(handler), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-fn.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-fn.bench.ts index 2655ef2f493..48c444de77b 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-fn.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-fn.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-fn (react)', - () => runGlobalMiddlewareServerFnLoop(handler, context), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-fn (react)', async () => + runGlobalMiddlewareServerFnLoop(handler, context), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-0-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-0-middleware.bench.ts index 2a784ec9870..22f53883eeb 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-0-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-0-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 0 middleware (react)', - () => runGlobalMiddlewareServerRouteLoop(handler, 0), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 0 middleware (react)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 0), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-1-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-1-middleware.bench.ts index 64e18cfe611..f01b48d66e9 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-1-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-1-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 1 middleware (react)', - () => runGlobalMiddlewareServerRouteLoop(handler, 1), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 1 middleware (react)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 1), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-2-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-2-middleware.bench.ts index 4418f0867ef..b01957f806e 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-2-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route-2-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 2 middlewares (react)', - () => runGlobalMiddlewareServerRouteLoop(handler, 2), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 2 middlewares (react)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 2), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route.bench.ts b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route.bench.ts index 189f3b7ef67..08d97fcaf6e 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/speed.global-mw-server-route.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 3 middlewares (react)', - () => runGlobalMiddlewareServerRouteLoop(handler, 3), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 3 middlewares (react)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 3), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts index 968a8a24e9f..c21046278c6 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.bench.ts index 5f27210e360..0e5f5040905 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw document (solid)', - () => runGlobalMiddlewareDocumentLoop(handler), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw document (solid)', async () => + runGlobalMiddlewareDocumentLoop(handler), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-fn.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-fn.bench.ts index eb19e10ec93..915507ef9f8 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-fn.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-fn.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-fn (solid)', - () => runGlobalMiddlewareServerFnLoop(handler, context), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-fn (solid)', async () => + runGlobalMiddlewareServerFnLoop(handler, context), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-0-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-0-middleware.bench.ts index c7485b4ef44..a7911459358 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-0-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-0-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 0 middleware (solid)', - () => runGlobalMiddlewareServerRouteLoop(handler, 0), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 0 middleware (solid)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 0), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-1-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-1-middleware.bench.ts index ac18e0ca79b..1baab0f3448 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-1-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-1-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 1 middleware (solid)', - () => runGlobalMiddlewareServerRouteLoop(handler, 1), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 1 middleware (solid)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 1), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-2-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-2-middleware.bench.ts index 7c2be97b015..d6fde207649 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-2-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route-2-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 2 middlewares (solid)', - () => runGlobalMiddlewareServerRouteLoop(handler, 2), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 2 middlewares (solid)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 2), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route.bench.ts b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route.bench.ts index 7d21d720671..558ebeb9a4f 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/speed.global-mw-server-route.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 3 middlewares (solid)', - () => runGlobalMiddlewareServerRouteLoop(handler, 3), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 3 middlewares (solid)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 3), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts index f3597b25d54..0c093dae353 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.bench.ts index 5d92aab849d..9660f29d071 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw document (vue)', - () => runGlobalMiddlewareDocumentLoop(handler), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw document (vue)', async () => + runGlobalMiddlewareDocumentLoop(handler), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-fn.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-fn.bench.ts index ab158504c89..297e8cee7bc 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-fn.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-fn.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-fn (vue)', - () => runGlobalMiddlewareServerFnLoop(handler, context), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-fn (vue)', async () => + runGlobalMiddlewareServerFnLoop(handler, context), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-0-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-0-middleware.bench.ts index c334af8b65d..d023dd458a7 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-0-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-0-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 0 middleware (vue)', - () => runGlobalMiddlewareServerRouteLoop(handler, 0), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 0 middleware (vue)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 0), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-1-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-1-middleware.bench.ts index 7c1b91a0eab..50181636318 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-1-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-1-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 1 middleware (vue)', - () => runGlobalMiddlewareServerRouteLoop(handler, 1), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 1 middleware (vue)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 1), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-2-middleware.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-2-middleware.bench.ts index 5b00bd3ca9f..f9abd8eb60b 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-2-middleware.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route-2-middleware.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 2 middlewares (vue)', - () => runGlobalMiddlewareServerRouteLoop(handler, 2), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 2 middlewares (vue)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 2), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route.bench.ts b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route.bench.ts index 6cdc34241eb..adcec3019f0 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route.bench.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/speed.global-mw-server-route.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertGlobalMiddlewareScenario, globalMiddlewareBenchOptions, @@ -18,10 +18,8 @@ const context = await setupGlobalMiddlewareBench(handler) await assertGlobalMiddlewareScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr global-mw server-route 3 middlewares (vue)', - () => runGlobalMiddlewareServerRouteLoop(handler, 3), - globalMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr global-mw server-route 3 middlewares (vue)', async () => + runGlobalMiddlewareServerRouteLoop(handler, 3), + ).run(globalMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts index 8e29c5ee98d..1fb5c121d09 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/react/speed.bench.ts b/benchmarks/ssr/scenarios/head/react/speed.bench.ts index 19158b32a91..f75008506e0 100644 --- a/benchmarks/ssr/scenarios/head/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/head/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertHeadSanity, headBenchOptions, runHeadLoop } from '../shared' import type { StartRequestHandler } from '../shared' @@ -12,6 +12,8 @@ const { default: handler } = (await import( await assertHeadSanity(handler) -describe('ssr', () => { - bench('ssr head (react)', () => runHeadLoop(handler), headBenchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr head (react)', async () => runHeadLoop(handler)).run( + headBenchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/head/react/vite.config.ts b/benchmarks/ssr/scenarios/head/react/vite.config.ts index d24fc850a14..85ca1ed57e1 100644 --- a/benchmarks/ssr/scenarios/head/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/solid/speed.bench.ts b/benchmarks/ssr/scenarios/head/solid/speed.bench.ts index ad5bf52809d..333e2f091b8 100644 --- a/benchmarks/ssr/scenarios/head/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/head/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertHeadSanity, headBenchOptions, runHeadLoop } from '../shared' import type { StartRequestHandler } from '../shared' @@ -12,6 +12,8 @@ const { default: handler } = (await import( await assertHeadSanity(handler) -describe('ssr', () => { - bench('ssr head (solid)', () => runHeadLoop(handler), headBenchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr head (solid)', async () => runHeadLoop(handler)).run( + headBenchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/head/solid/vite.config.ts b/benchmarks/ssr/scenarios/head/solid/vite.config.ts index 7a870bbd77c..cbec6950b38 100644 --- a/benchmarks/ssr/scenarios/head/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/vue/speed.bench.ts b/benchmarks/ssr/scenarios/head/vue/speed.bench.ts index 5d8243b5889..936735a9099 100644 --- a/benchmarks/ssr/scenarios/head/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/head/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertHeadSanity, headBenchOptions, runHeadLoop } from '../shared' import type { StartRequestHandler } from '../shared' @@ -12,6 +12,8 @@ const { default: handler } = (await import( await assertHeadSanity(handler) -describe('ssr', () => { - bench('ssr head (vue)', () => runHeadLoop(handler), headBenchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr head (vue)', async () => runHeadLoop(handler)).run( + headBenchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/head/vue/vite.config.ts b/benchmarks/ssr/scenarios/head/vue/vite.config.ts index 1434d260693..3e697a7dc6d 100644 --- a/benchmarks/ssr/scenarios/head/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/react/speed.bench.ts b/benchmarks/ssr/scenarios/loaders/react/speed.bench.ts index a5eecfc6487..7acd43c6359 100644 --- a/benchmarks/ssr/scenarios/loaders/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/loaders/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertLoadersSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertLoadersSanity(handler) -describe('ssr', () => { - bench('ssr loaders (react)', () => runLoadersLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr loaders (react)', async () => runLoadersLoop(handler)).run( + benchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/loaders/react/vite.config.ts b/benchmarks/ssr/scenarios/loaders/react/vite.config.ts index e761426c84c..63f7a3bd7d4 100644 --- a/benchmarks/ssr/scenarios/loaders/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/solid/speed.bench.ts b/benchmarks/ssr/scenarios/loaders/solid/speed.bench.ts index 7b3f6247ea0..7fc8d883895 100644 --- a/benchmarks/ssr/scenarios/loaders/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/loaders/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertLoadersSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertLoadersSanity(handler) -describe('ssr', () => { - bench('ssr loaders (solid)', () => runLoadersLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr loaders (solid)', async () => runLoadersLoop(handler)).run( + benchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts b/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts index 64f52159c3a..9d929fcb261 100644 --- a/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/vue/speed.bench.ts b/benchmarks/ssr/scenarios/loaders/vue/speed.bench.ts index fb39e0652c0..321350d98cf 100644 --- a/benchmarks/ssr/scenarios/loaders/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/loaders/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertLoadersSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertLoadersSanity(handler) -describe('ssr', () => { - bench('ssr loaders (vue)', () => runLoadersLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr loaders (vue)', async () => runLoadersLoop(handler)).run( + benchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts b/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts index 92bf3e60f0e..47b9b2497bc 100644 --- a/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/react/speed.bench.ts b/benchmarks/ssr/scenarios/rewrites/react/speed.bench.ts index a8af260279c..920186c5dbe 100644 --- a/benchmarks/ssr/scenarios/rewrites/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite localized (react)', - () => runRewriteLocalizedLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite localized (react)', async () => + runRewriteLocalizedLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/react/speed.rewrite-passthrough.bench.ts b/benchmarks/ssr/scenarios/rewrites/react/speed.rewrite-passthrough.bench.ts index cffabcafb54..f5d09089a6e 100644 --- a/benchmarks/ssr/scenarios/rewrites/react/speed.rewrite-passthrough.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/react/speed.rewrite-passthrough.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite passthrough (react)', - () => runRewritePassthroughLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite passthrough (react)', async () => + runRewritePassthroughLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts index 7b20340ec6d..3e6340e7d6f 100644 --- a/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,6 +30,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/solid/speed.bench.ts b/benchmarks/ssr/scenarios/rewrites/solid/speed.bench.ts index 5fdef077c9d..488fb2ca52f 100644 --- a/benchmarks/ssr/scenarios/rewrites/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite localized (solid)', - () => runRewriteLocalizedLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite localized (solid)', async () => + runRewriteLocalizedLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/solid/speed.rewrite-passthrough.bench.ts b/benchmarks/ssr/scenarios/rewrites/solid/speed.rewrite-passthrough.bench.ts index 2458a59b694..7b86e2ba11c 100644 --- a/benchmarks/ssr/scenarios/rewrites/solid/speed.rewrite-passthrough.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/solid/speed.rewrite-passthrough.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite passthrough (solid)', - () => runRewritePassthroughLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite passthrough (solid)', async () => + runRewritePassthroughLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts index 963fe7132bc..47ff3842dd2 100644 --- a/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,6 +30,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/vue/speed.bench.ts b/benchmarks/ssr/scenarios/rewrites/vue/speed.bench.ts index b8a98c34084..5fd4da9d3e9 100644 --- a/benchmarks/ssr/scenarios/rewrites/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite localized (vue)', - () => runRewriteLocalizedLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite localized (vue)', async () => + runRewriteLocalizedLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/vue/speed.rewrite-passthrough.bench.ts b/benchmarks/ssr/scenarios/rewrites/vue/speed.rewrite-passthrough.bench.ts index e011a9fc8dc..f3664b5f210 100644 --- a/benchmarks/ssr/scenarios/rewrites/vue/speed.rewrite-passthrough.bench.ts +++ b/benchmarks/ssr/scenarios/rewrites/vue/speed.rewrite-passthrough.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertRewriteScenario, rewriteBenchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertRewriteScenario(handler) -describe('ssr', () => { - bench( - 'ssr rewrite passthrough (vue)', - () => runRewritePassthroughLoop(handler), - rewriteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr rewrite passthrough (vue)', async () => + runRewritePassthroughLoop(handler), + ).run(rewriteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts index 22399ec6b2a..7b0eafab154 100644 --- a/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,6 +30,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/react/speed.bench.ts b/benchmarks/ssr/scenarios/selective-ssr/react/speed.bench.ts index e0e8a0e3c45..ba6bd4a61d1 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSelectiveSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertSelectiveSanity(handler) -describe('ssr', () => { - bench('ssr selective (react)', () => runSelectiveLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr selective (react)', async () => + runSelectiveLoop(handler), + ).run(benchOptions) }) diff --git a/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts index 70c67cff81b..01e722519c5 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/solid/speed.bench.ts b/benchmarks/ssr/scenarios/selective-ssr/solid/speed.bench.ts index 6a2803d45f5..76265397abc 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSelectiveSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertSelectiveSanity(handler) -describe('ssr', () => { - bench('ssr selective (solid)', () => runSelectiveLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr selective (solid)', async () => + runSelectiveLoop(handler), + ).run(benchOptions) }) diff --git a/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts index 2c0042c1ed9..dce4d0eb533 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/vue/speed.bench.ts b/benchmarks/ssr/scenarios/selective-ssr/vue/speed.bench.ts index f3082a102d4..ff60341b273 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSelectiveSanity, benchOptions, @@ -16,6 +16,8 @@ const { default: handler } = (await import( await assertSelectiveSanity(handler) -describe('ssr', () => { - bench('ssr selective (vue)', () => runSelectiveLoop(handler), benchOptions) +test('ssr', async ({ bench }) => { + await bench('ssr selective (vue)', async () => runSelectiveLoop(handler)).run( + benchOptions, + ) }) diff --git a/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts index 09bb36cb0bf..66f047e1fff 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/react/speed.bench.ts b/benchmarks/ssr/scenarios/serialization/react/speed.bench.ts index 9032280e515..8be07d2643d 100644 --- a/benchmarks/ssr/scenarios/serialization/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runRichSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate rich types (react)', - () => runRichSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate rich types (react)', async () => + runRichSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/react/speed.dehydrate-plain-control.bench.ts b/benchmarks/ssr/scenarios/serialization/react/speed.dehydrate-plain-control.bench.ts index a6c8d99fb6a..c70fddc6c44 100644 --- a/benchmarks/ssr/scenarios/serialization/react/speed.dehydrate-plain-control.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/react/speed.dehydrate-plain-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runPlainSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate plain control (react)', - () => runPlainSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate plain control (react)', async () => + runPlainSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/react/vite.config.ts b/benchmarks/ssr/scenarios/serialization/react/vite.config.ts index 64568ccb7e2..6e7029522b5 100644 --- a/benchmarks/ssr/scenarios/serialization/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/solid/speed.bench.ts b/benchmarks/ssr/scenarios/serialization/solid/speed.bench.ts index 3fa22ccea93..70bda8c7af5 100644 --- a/benchmarks/ssr/scenarios/serialization/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runRichSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate rich types (solid)', - () => runRichSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate rich types (solid)', async () => + runRichSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/solid/speed.dehydrate-plain-control.bench.ts b/benchmarks/ssr/scenarios/serialization/solid/speed.dehydrate-plain-control.bench.ts index 354512e09d9..d7ccb16f6fe 100644 --- a/benchmarks/ssr/scenarios/serialization/solid/speed.dehydrate-plain-control.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/solid/speed.dehydrate-plain-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runPlainSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate plain control (solid)', - () => runPlainSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate plain control (solid)', async () => + runPlainSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts b/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts index db81e2ab746..5da16acca57 100644 --- a/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/vue/speed.bench.ts b/benchmarks/ssr/scenarios/serialization/vue/speed.bench.ts index d68c615fdc7..7f733dd6010 100644 --- a/benchmarks/ssr/scenarios/serialization/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runRichSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate rich types (vue)', - () => runRichSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate rich types (vue)', async () => + runRichSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/vue/speed.dehydrate-plain-control.bench.ts b/benchmarks/ssr/scenarios/serialization/vue/speed.dehydrate-plain-control.bench.ts index 875a8582266..8efdeb6c791 100644 --- a/benchmarks/ssr/scenarios/serialization/vue/speed.dehydrate-plain-control.bench.ts +++ b/benchmarks/ssr/scenarios/serialization/vue/speed.dehydrate-plain-control.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertSerializationScenario, runPlainSerializationLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertSerializationScenario(handler) -describe('ssr', () => { - bench( - 'ssr dehydrate plain control (vue)', - () => runPlainSerializationLoop(handler), - serializationBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr dehydrate plain control (vue)', async () => + runPlainSerializationLoop(handler), + ).run(serializationBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts b/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts index b89537fa18d..3acd04bd373 100644 --- a/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.bench.ts index 149ff591edd..fa80cdb6902 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnMultipartRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn multipart (react)', - () => runServerFnMultipartRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn multipart (react)', async () => + runServerFnMultipartRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-response.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-response.bench.ts index 43b31c609de..fd535ee3131 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-response.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-response.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawResponseRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-response (react)', - () => runServerFnRawResponseRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-response (react)', async () => + runServerFnRawResponseRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-stream.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-stream.bench.ts index 4c90ffb8470..8fbce405ddb 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-stream.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/react/speed.server-fn-raw-stream.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawStreamRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-stream (react)', - () => runServerFnRawStreamRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-stream (react)', async () => + runServerFnRawStreamRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts index c37fde0c4bd..9a3f9813b12 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.bench.ts index aaa20289022..adac07cb22b 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnMultipartRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn multipart (solid)', - () => runServerFnMultipartRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn multipart (solid)', async () => + runServerFnMultipartRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-response.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-response.bench.ts index 661430c3ae0..843a4c97ce9 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-response.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-response.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawResponseRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-response (solid)', - () => runServerFnRawResponseRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-response (solid)', async () => + runServerFnRawResponseRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-stream.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-stream.bench.ts index 37d9b86e12d..aa24d55e79e 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-stream.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/solid/speed.server-fn-raw-stream.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawStreamRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-stream (solid)', - () => runServerFnRawStreamRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-stream (solid)', async () => + runServerFnRawStreamRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts index a8af4a6b50a..c72bdbc68e5 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.bench.ts index 99d266298d5..24305cf1bc8 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnMultipartRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn multipart (vue)', - () => runServerFnMultipartRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn multipart (vue)', async () => + runServerFnMultipartRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-response.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-response.bench.ts index 36e1b9ed225..2eeb9a4f6b0 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-response.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-response.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawResponseRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-response (vue)', - () => runServerFnRawResponseRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-response (vue)', async () => + runServerFnRawResponseRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-stream.bench.ts b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-stream.bench.ts index 4c9e5dc7520..a73905004d1 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-stream.bench.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/vue/speed.server-fn-raw-stream.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnTransportScenario, runServerFnRawStreamRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnTransportBench(handler) await assertServerFnTransportScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn raw-stream (vue)', - () => runServerFnRawStreamRequestLoop(handler, context), - serverFnTransportBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn raw-stream (vue)', async () => + runServerFnRawStreamRequestLoop(handler, context), + ).run(serverFnTransportBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts index 0f3e2ce84d8..bbd2b9a24a8 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.bench.ts index 697bfe967a2..c876772ad14 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnGetRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn GET (react)', - () => runServerFnGetRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn GET (react)', async () => + runServerFnGetRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-during-document-ssr.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-during-document-ssr.bench.ts index 4b1c7c7d1e2..6a0cb55f781 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-during-document-ssr.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-during-document-ssr.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnDocumentSsrRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn during document ssr (react)', - () => runServerFnDocumentSsrRequestLoop(handler), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn during document ssr (react)', async () => + runServerFnDocumentSsrRequestLoop(handler), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-not-found.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-not-found.bench.ts index 1f600dd8cf9..96f11600785 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-not-found.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnNotFoundRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn not-found (react)', - () => runServerFnNotFoundRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn not-found (react)', async () => + runServerFnNotFoundRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-post.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-post.bench.ts index 0b4b3e5d6c7..e85d5debd3e 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-post.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-post.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnPostRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn POST (react)', - () => runServerFnPostRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn POST (react)', async () => + runServerFnPostRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-redirect.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-redirect.bench.ts index d07b4ab583f..5dae5985493 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-redirect.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-redirect.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnRedirectRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn redirect (react)', - () => runServerFnRedirectRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn redirect (react)', async () => + runServerFnRedirectRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-send-context.bench.ts b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-send-context.bench.ts index 589e2ccaf3f..40d69612064 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-send-context.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/speed.server-fn-send-context.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnSendContextRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn send-context (react)', - () => runServerFnSendContextRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn send-context (react)', async () => + runServerFnSendContextRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts index cd56edda95e..9d3be5ab14c 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.bench.ts index 42e57c4ce25..f6bbdc9e73d 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnGetRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn GET (solid)', - () => runServerFnGetRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn GET (solid)', async () => + runServerFnGetRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-during-document-ssr.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-during-document-ssr.bench.ts index 1cbe7ef20ba..933f61b59c0 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-during-document-ssr.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-during-document-ssr.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnDocumentSsrRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn during document ssr (solid)', - () => runServerFnDocumentSsrRequestLoop(handler), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn during document ssr (solid)', async () => + runServerFnDocumentSsrRequestLoop(handler), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-not-found.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-not-found.bench.ts index bd5cc104570..513b69f4bab 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-not-found.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnNotFoundRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn not-found (solid)', - () => runServerFnNotFoundRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn not-found (solid)', async () => + runServerFnNotFoundRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-post.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-post.bench.ts index d2cf977cfa8..e2ce8ad9eef 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-post.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-post.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnPostRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn POST (solid)', - () => runServerFnPostRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn POST (solid)', async () => + runServerFnPostRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-redirect.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-redirect.bench.ts index 017ac79af0d..14353f12909 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-redirect.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-redirect.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnRedirectRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn redirect (solid)', - () => runServerFnRedirectRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn redirect (solid)', async () => + runServerFnRedirectRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-send-context.bench.ts b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-send-context.bench.ts index a3d0a991d17..76d3a554bda 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-send-context.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/speed.server-fn-send-context.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnSendContextRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn send-context (solid)', - () => runServerFnSendContextRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn send-context (solid)', async () => + runServerFnSendContextRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts index 2f2f78b75cc..2cffc259171 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.bench.ts index c4d94659d95..3f67c1a5007 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnGetRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn GET (vue)', - () => runServerFnGetRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn GET (vue)', async () => + runServerFnGetRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-during-document-ssr.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-during-document-ssr.bench.ts index c6155bcead9..56c9addca58 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-during-document-ssr.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-during-document-ssr.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnDocumentSsrRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn during document ssr (vue)', - () => runServerFnDocumentSsrRequestLoop(handler), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn during document ssr (vue)', async () => + runServerFnDocumentSsrRequestLoop(handler), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-not-found.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-not-found.bench.ts index dca17511b8d..e9a6e316172 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-not-found.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-not-found.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnNotFoundRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn not-found (vue)', - () => runServerFnNotFoundRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn not-found (vue)', async () => + runServerFnNotFoundRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-post.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-post.bench.ts index 4c2166056a0..df9312ccd11 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-post.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-post.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnPostRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn POST (vue)', - () => runServerFnPostRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn POST (vue)', async () => + runServerFnPostRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-redirect.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-redirect.bench.ts index 25741baa621..67c4611644a 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-redirect.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-redirect.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnRedirectRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn redirect (vue)', - () => runServerFnRedirectRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn redirect (vue)', async () => + runServerFnRedirectRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-send-context.bench.ts b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-send-context.bench.ts index c1c2d581ba0..6f51ef4bab1 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-send-context.bench.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/speed.server-fn-send-context.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerFnScenario, runServerFnSendContextRequestLoop, @@ -16,10 +16,8 @@ const context = await setupServerFnBench(handler) await assertServerFnScenario(handler, context) -describe('ssr', () => { - bench( - 'ssr server-fn send-context (vue)', - () => runServerFnSendContextRequestLoop(handler, context), - serverFnBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-fn send-context (vue)', async () => + runServerFnSendContextRequestLoop(handler, context), + ).run(serverFnBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts index 5f3e3ca4b56..b987be74088 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/react/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes-middleware/react/speed.bench.ts index 8e96bc8e041..63312165221 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteMiddlewareResponse, runServerRouteMiddlewareLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteMiddlewareResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route middleware (react)', - () => runServerRouteMiddlewareLoop(handler), - serverRouteMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route middleware (react)', async () => + runServerRouteMiddlewareLoop(handler), + ).run(serverRouteMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts index f6998c2ac85..e426bae406e 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/solid/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes-middleware/solid/speed.bench.ts index 7e6fac4bbe9..77d58e7b193 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteMiddlewareResponse, runServerRouteMiddlewareLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteMiddlewareResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route middleware (solid)', - () => runServerRouteMiddlewareLoop(handler), - serverRouteMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route middleware (solid)', async () => + runServerRouteMiddlewareLoop(handler), + ).run(serverRouteMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts index 800cf9db9f1..9f2ba834e61 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/vue/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes-middleware/vue/speed.bench.ts index e67ca0a4204..3d03b9c1fab 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteMiddlewareResponse, runServerRouteMiddlewareLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteMiddlewareResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route middleware (vue)', - () => runServerRouteMiddlewareLoop(handler), - serverRouteMiddlewareBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route middleware (vue)', async () => + runServerRouteMiddlewareLoop(handler), + ).run(serverRouteMiddlewareBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts index 909b7cca504..fd4cbd5e0bf 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/react/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes/react/speed.bench.ts index 1bdb7946b29..631314148af 100644 --- a/benchmarks/ssr/scenarios/server-routes/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteResponse, runServerRouteLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route (react)', - () => runServerRouteLoop(handler), - serverRouteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route (react)', async () => + runServerRouteLoop(handler), + ).run(serverRouteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts index 2c723c749cf..388cc32fba8 100644 --- a/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/solid/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes/solid/speed.bench.ts index ce3e1f8a213..4788d318543 100644 --- a/benchmarks/ssr/scenarios/server-routes/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteResponse, runServerRouteLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route (solid)', - () => runServerRouteLoop(handler), - serverRouteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route (solid)', async () => + runServerRouteLoop(handler), + ).run(serverRouteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts index 994e04f1d65..e80ed327635 100644 --- a/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/vue/speed.bench.ts b/benchmarks/ssr/scenarios/server-routes/vue/speed.bench.ts index f2b9e27acb5..09c0bbe90ba 100644 --- a/benchmarks/ssr/scenarios/server-routes/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/server-routes/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertServerRouteResponse, runServerRouteLoop, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertServerRouteResponse(handler) -describe('ssr', () => { - bench( - 'ssr server-route (vue)', - () => runServerRouteLoop(handler), - serverRouteBenchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr server-route (vue)', async () => + runServerRouteLoop(handler), + ).run(serverRouteBenchOptions) }) diff --git a/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts index 04574535322..92c55a5cf8f 100644 --- a/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/react/speed.bench.ts b/benchmarks/ssr/scenarios/streaming/react/speed.bench.ts index c1dbf38ae57..eb4c9dc1d61 100644 --- a/benchmarks/ssr/scenarios/streaming/react/speed.bench.ts +++ b/benchmarks/ssr/scenarios/streaming/react/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertStreamingSanity, benchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertStreamingSanity(handler) -describe('ssr', () => { - bench( - 'ssr streaming deferred (react)', - () => runStreamingLoop(handler), - benchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr streaming deferred (react)', async () => + runStreamingLoop(handler), + ).run(benchOptions) }) diff --git a/benchmarks/ssr/scenarios/streaming/react/vite.config.ts b/benchmarks/ssr/scenarios/streaming/react/vite.config.ts index e1cc5f534bb..8cc47e3ac26 100644 --- a/benchmarks/ssr/scenarios/streaming/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/react/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/solid/speed.bench.ts b/benchmarks/ssr/scenarios/streaming/solid/speed.bench.ts index 08287152204..19d5817d329 100644 --- a/benchmarks/ssr/scenarios/streaming/solid/speed.bench.ts +++ b/benchmarks/ssr/scenarios/streaming/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertStreamingSanity, benchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertStreamingSanity(handler) -describe('ssr', () => { - bench( - 'ssr streaming deferred (solid)', - () => runStreamingLoop(handler), - benchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr streaming deferred (solid)', async () => + runStreamingLoop(handler), + ).run(benchOptions) }) diff --git a/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts b/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts index 353c21f5520..554efb74d86 100644 --- a/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/vue/speed.bench.ts b/benchmarks/ssr/scenarios/streaming/vue/speed.bench.ts index a484f95d6aa..42473fc694b 100644 --- a/benchmarks/ssr/scenarios/streaming/vue/speed.bench.ts +++ b/benchmarks/ssr/scenarios/streaming/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { assertStreamingSanity, benchOptions, @@ -16,10 +16,8 @@ const { default: handler } = (await import( await assertStreamingSanity(handler) -describe('ssr', () => { - bench( - 'ssr streaming deferred (vue)', - () => runStreamingLoop(handler), - benchOptions, - ) +test('ssr', async ({ bench }) => { + await bench('ssr streaming deferred (vue)', async () => + runStreamingLoop(handler), + ).run(benchOptions) }) diff --git a/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts b/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts index a09a30076fa..7b29df6ab86 100644 --- a/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts @@ -3,7 +3,10 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../../../cpu-simulation' +import { + benchTestTimeout, + cpuSimulationExecArgv, +} from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +27,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (vue)', watch: false, diff --git a/benchmarks/ssr/solid/speed.bench.ts b/benchmarks/ssr/solid/speed.bench.ts index 0c4317415de..2f729776129 100644 --- a/benchmarks/ssr/solid/speed.bench.ts +++ b/benchmarks/ssr/solid/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { runSsrRequestLoop } from '../bench-utils' import type { StartRequestHandler } from '../bench-utils' @@ -11,14 +11,12 @@ const { default: handler } = (await import( default: StartRequestHandler } -describe('ssr', () => { - bench( - 'ssr request loop (solid)', - () => runSsrRequestLoop(handler, { seed: benchmarkSeed }), - { - warmupIterations: 100, - time: 10_000, - throws: true, - }, - ) +test('ssr', async ({ bench }) => { + await bench('ssr request loop (solid)', async () => + runSsrRequestLoop(handler, { seed: benchmarkSeed }), + ).run({ + warmupIterations: 100, + time: 10_000, + throws: true, + }) }) diff --git a/benchmarks/ssr/solid/vite.config.ts b/benchmarks/ssr/solid/vite.config.ts index dfd82d91923..afad736ee6c 100644 --- a/benchmarks/ssr/solid/vite.config.ts +++ b/benchmarks/ssr/solid/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +24,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (solid)', watch: false, diff --git a/benchmarks/ssr/vue/speed.bench.ts b/benchmarks/ssr/vue/speed.bench.ts index 849f042e3cf..57b59e05044 100644 --- a/benchmarks/ssr/vue/speed.bench.ts +++ b/benchmarks/ssr/vue/speed.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { test } from 'vitest' import { runSsrRequestLoop } from '../bench-utils' import type { StartRequestHandler } from '../bench-utils' @@ -11,14 +11,12 @@ const { default: handler } = (await import( default: StartRequestHandler } -describe('ssr', () => { - bench( - 'ssr request loop (vue)', - () => runSsrRequestLoop(handler, { seed: benchmarkSeed }), - { - warmupIterations: 100, - time: 10_000, - throws: true, - }, - ) +test('ssr', async ({ bench }) => { + await bench('ssr request loop (vue)', async () => + runSsrRequestLoop(handler, { seed: benchmarkSeed }), + ).run({ + warmupIterations: 100, + time: 10_000, + throws: true, + }) }) diff --git a/benchmarks/ssr/vue/vite.config.ts b/benchmarks/ssr/vue/vite.config.ts index b2b9fc8a09b..0658d6db4b1 100644 --- a/benchmarks/ssr/vue/vite.config.ts +++ b/benchmarks/ssr/vue/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { cpuSimulationExecArgv } from '../../cpu-simulation' +import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,6 +24,7 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), + testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (vue)', watch: false, diff --git a/examples/react/search-validator-adapters/package.json b/examples/react/search-validator-adapters/package.json index 8b534939fa9..62d9dcaa52c 100644 --- a/examples/react/search-validator-adapters/package.json +++ b/examples/react/search-validator-adapters/package.json @@ -26,7 +26,7 @@ "zod": "^3.24.2" }, "devDependencies": { - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.2.0", "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", @@ -35,6 +35,6 @@ "jsdom": "^27.0.0", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.14", - "vitest": "^4.1.4" + "vitest": "^5.0.4" } } diff --git a/examples/react/search-validator-adapters/tests/arktype.test.tsx b/examples/react/search-validator-adapters/tests/arktype.test.tsx index 1c3a1baf764..776cc8369e3 100644 --- a/examples/react/search-validator-adapters/tests/arktype.test.tsx +++ b/examples/react/search-validator-adapters/tests/arktype.test.tsx @@ -8,7 +8,6 @@ import { createRouter, } from '@tanstack/react-router' -import '@testing-library/jest-dom/vitest' import { type } from 'arktype' test('can navigate to the route', async () => { diff --git a/examples/react/search-validator-adapters/tests/jest-dom.setup.ts b/examples/react/search-validator-adapters/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/examples/react/search-validator-adapters/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/examples/react/search-validator-adapters/tests/valibot.test.tsx b/examples/react/search-validator-adapters/tests/valibot.test.tsx index 3680d2302c8..d3e18db414f 100644 --- a/examples/react/search-validator-adapters/tests/valibot.test.tsx +++ b/examples/react/search-validator-adapters/tests/valibot.test.tsx @@ -8,7 +8,6 @@ import { createRouter, } from '@tanstack/react-router' import * as v from 'valibot' -import '@testing-library/jest-dom/vitest' test('can navigate to the route', async () => { const rootRoute = createRootRoute() diff --git a/examples/react/search-validator-adapters/vite.config.ts b/examples/react/search-validator-adapters/vite.config.ts index 5b41e6e26bc..e4b93f5cc33 100644 --- a/examples/react/search-validator-adapters/vite.config.ts +++ b/examples/react/search-validator-adapters/vite.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, + setupFiles: ['./tests/jest-dom.setup.ts'], }, plugins: [ tailwindcss(), diff --git a/examples/react/start-bun/package.json b/examples/react/start-bun/package.json index f4cec22b640..9999a5de9b2 100644 --- a/examples/react/start-bun/package.json +++ b/examples/react/start-bun/package.json @@ -38,7 +38,7 @@ "@typescript/native": "npm:typescript@^7.0.2", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.14", - "vitest": "^4.1.4", + "vitest": "^5.0.4", "web-vitals": "^5.1.0" } } diff --git a/examples/solid/search-validator-adapters/package.json b/examples/solid/search-validator-adapters/package.json index b0d1e84792a..c2bfc4b3a91 100644 --- a/examples/solid/search-validator-adapters/package.json +++ b/examples/solid/search-validator-adapters/package.json @@ -25,13 +25,13 @@ "zod": "^3.24.2" }, "devDependencies": { - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "^7.0.1", "@solidjs/testing-library": "^0.8.10", "vite-plugin-solid": "^2.11.11", "@typescript/native": "npm:typescript@^7.0.2", "jsdom": "^27.0.0", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.14", - "vitest": "^4.1.4" + "vitest": "^5.0.4" } } diff --git a/examples/solid/search-validator-adapters/tests/arktype.test.tsx b/examples/solid/search-validator-adapters/tests/arktype.test.tsx index 4ec555fc7bf..f22a3599959 100644 --- a/examples/solid/search-validator-adapters/tests/arktype.test.tsx +++ b/examples/solid/search-validator-adapters/tests/arktype.test.tsx @@ -8,7 +8,6 @@ import { createRouter, } from '@tanstack/solid-router' -import '@testing-library/jest-dom/vitest' import { type } from 'arktype' test('can navigate to the route', async () => { diff --git a/examples/solid/search-validator-adapters/tests/jest-dom.setup.ts b/examples/solid/search-validator-adapters/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/examples/solid/search-validator-adapters/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/examples/solid/search-validator-adapters/tests/valibot.test.tsx b/examples/solid/search-validator-adapters/tests/valibot.test.tsx index cd4545397ce..8594c1cb292 100644 --- a/examples/solid/search-validator-adapters/tests/valibot.test.tsx +++ b/examples/solid/search-validator-adapters/tests/valibot.test.tsx @@ -8,7 +8,6 @@ import { createRouter, } from '@tanstack/solid-router' import * as v from 'valibot' -import '@testing-library/jest-dom/vitest' test('can navigate to the route', async () => { const rootRoute = createRootRoute() diff --git a/examples/solid/search-validator-adapters/vite.config.ts b/examples/solid/search-validator-adapters/vite.config.ts index 5b9dbebfefc..4e05d81e750 100644 --- a/examples/solid/search-validator-adapters/vite.config.ts +++ b/examples/solid/search-validator-adapters/vite.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, + setupFiles: ['./tests/jest-dom.setup.ts'], server: { deps: { inline: [/@solidjs/, /@tanstack\/solid-store/], diff --git a/examples/solid/start-bun/package.json b/examples/solid/start-bun/package.json index 54d17280238..31cf6cba553 100644 --- a/examples/solid/start-bun/package.json +++ b/examples/solid/start-bun/package.json @@ -35,7 +35,7 @@ "@typescript/native": "npm:typescript@^7.0.2", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.14", - "vitest": "^4.1.4", + "vitest": "^5.0.4", "web-vitals": "^5.1.0" } } diff --git a/packages/arktype-adapter/tests/index.test.tsx b/packages/arktype-adapter/tests/index.test.tsx index a99ecda9c42..ce6eb747562 100644 --- a/packages/arktype-adapter/tests/index.test.tsx +++ b/packages/arktype-adapter/tests/index.test.tsx @@ -9,7 +9,6 @@ import { cleanup, fireEvent, render, screen } from '@testing-library/react' import { afterEach, expect, test, vi } from 'vitest' import { type } from 'arktype' import { arkTypeValidator } from '../src' -import '@testing-library/jest-dom/vitest' afterEach(() => { vi.resetAllMocks() diff --git a/packages/arktype-adapter/tests/jest-dom.setup.ts b/packages/arktype-adapter/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/arktype-adapter/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/arktype-adapter/vite.config.ts b/packages/arktype-adapter/vite.config.ts index 8c8c0c519f9..8d553e0a59f 100644 --- a/packages/arktype-adapter/vite.config.ts +++ b/packages/arktype-adapter/vite.config.ts @@ -9,6 +9,7 @@ const config = defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, + setupFiles: ['./tests/jest-dom.setup.ts'], }, }) diff --git a/packages/react-router/tests/blocker.test.tsx b/packages/react-router/tests/blocker.test.tsx index 60d1e8a821a..3ed3c3039e1 100644 --- a/packages/react-router/tests/blocker.test.tsx +++ b/packages/react-router/tests/blocker.test.tsx @@ -1,5 +1,4 @@ import React from 'react' -import '@testing-library/jest-dom/vitest' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@testing-library/react' import combinate from 'combinate' diff --git a/packages/react-router/tests/jest-dom.setup.ts b/packages/react-router/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/react-router/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/react-router/tests/link.bench.tsx b/packages/react-router/tests/link.bench.tsx index 239173340b3..6871afc8a4a 100644 --- a/packages/react-router/tests/link.bench.tsx +++ b/packages/react-router/tests/link.bench.tsx @@ -1,5 +1,5 @@ import { render } from '@testing-library/react' -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' import { getRouteSegments } from '@tanstack/router-core' import { Link, @@ -82,9 +82,8 @@ describe.each([ ])('$name', ({ numberOfRoutes, numberOfLinks, matchedParamId }) => { const renderRouter = createRouterRenderer(numberOfRoutes) - bench( - 'hardcoded href', - () => { + test('hardcoded href', async ({ bench }) => { + await bench('hardcoded href', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( @@ -93,13 +92,13 @@ describe.each([ )), ) render() - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'interpolate path', - () => { + test('interpolate path', async ({ bench }) => { + await bench('interpolate path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'build location', - () => { + test('build location', async ({ bench }) => { + await bench('build location', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to absolute path', - () => { + test('link to absolute path', async ({ bench }) => { + await bench('link to absolute path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to relative path', - () => { + test('link to relative path', async ({ bench }) => { + await bench('link to relative path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => { const to = `./params/$param${Math.min(i, matchedParamId)}` @@ -174,13 +173,13 @@ describe.each([ }), ) render() - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to current path', - () => { + test('link to current path', async ({ bench }) => { + await bench('link to current path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( @@ -189,7 +188,8 @@ describe.each([ )), ) render() - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) }) diff --git a/packages/react-router/tests/setupTests.tsx b/packages/react-router/tests/setupTests.tsx index c3d7ec5cf76..6ab5039d6e5 100644 --- a/packages/react-router/tests/setupTests.tsx +++ b/packages/react-router/tests/setupTests.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { vi } from 'vitest' // @ts-expect-error diff --git a/packages/react-router/tests/useBlocker.test.tsx b/packages/react-router/tests/useBlocker.test.tsx index c11cd054f16..e13437780ed 100644 --- a/packages/react-router/tests/useBlocker.test.tsx +++ b/packages/react-router/tests/useBlocker.test.tsx @@ -1,5 +1,4 @@ import React from 'react' -import '@testing-library/jest-dom/vitest' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@testing-library/react' diff --git a/packages/react-router/tests/useNavigate.test.tsx b/packages/react-router/tests/useNavigate.test.tsx index 1ec1072a26c..3acf185b223 100644 --- a/packages/react-router/tests/useNavigate.test.tsx +++ b/packages/react-router/tests/useNavigate.test.tsx @@ -1,5 +1,4 @@ import React, { act } from 'react' -import '@testing-library/jest-dom/vitest' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { cleanup, diff --git a/packages/react-router/vite.config.ts b/packages/react-router/vite.config.ts index 0eb9e3c77e1..798d9b74e40 100644 --- a/packages/react-router/vite.config.ts +++ b/packages/react-router/vite.config.ts @@ -18,7 +18,7 @@ const config = defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, - setupFiles: ['./tests/setupTests.tsx'], + setupFiles: ['./tests/jest-dom.setup.ts', './tests/setupTests.tsx'], }, }) diff --git a/packages/router-core/tests/build-location.bench.ts b/packages/router-core/tests/build-location.bench.ts index b6162aafef9..2b93731d2c4 100644 --- a/packages/router-core/tests/build-location.bench.ts +++ b/packages/router-core/tests/build-location.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute, BaseRoute, retainSearchParams } from '../src' import { createTestRouter } from './routerTestUtils' @@ -75,20 +75,23 @@ function defineCase( expect(router.buildLocation(dest as any).href).toBe(expectedHref(index)) }) let checksum = 0 - bench( - name, - () => { - checksum = publication(router, dests) - }, - { + test(name, async ({ bench }) => { + await bench( + name, + { + afterAll: () => { + expect(checksum).toBe(expected) + }, + }, + () => { + checksum = publication(router, dests) + }, + ).run({ time: 1000, warmupTime: 200, throws: true, - teardown: () => { - expect(checksum).toBe(expected) - }, - }, - ) + }) + }) } describe(`buildLocation per publication (${LINKS} links)`, () => { diff --git a/packages/router-core/tests/cache-commit.bench.ts b/packages/router-core/tests/cache-commit.bench.ts index 221836aa29f..d570e55bf2b 100644 --- a/packages/router-core/tests/cache-commit.bench.ts +++ b/packages/router-core/tests/cache-commit.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { commitMatches } from '../src/load-client' import type { AnyRouteMatch, AnyRouter } from '../src' import type { LoaderFlight, LoadTransaction } from '../src/load-client' @@ -99,15 +99,21 @@ for (const family of ['snapshots', 'mixed flights', 'preload flights']) { } } const batch = size <= 100 ? 100 : 1 - bench( - `${retainedFraction * 100}% retained (${batch} commits)`, - () => { - for (let index = 0; index < batch; index++) { - run() - } - }, - { time: 500, warmupTime: 100 }, - ) + test(`${retainedFraction * 100}% retained (${batch} commits)`, async ({ + bench, + }) => { + await bench( + `${retainedFraction * 100}% retained (${batch} commits)`, + () => { + for (let index = 0; index < batch; index++) { + run() + } + }, + ).run({ + time: 500, + warmupTime: 100, + }) + }) } }, ) diff --git a/packages/router-core/tests/cache-navigation.bench.ts b/packages/router-core/tests/cache-navigation.bench.ts index 16650d7c4b4..053aa645acf 100644 --- a/packages/router-core/tests/cache-navigation.bench.ts +++ b/packages/router-core/tests/cache-navigation.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute, BaseRoute } from '../src' import { createTestRouter } from './routerTestUtils' @@ -42,9 +42,11 @@ for (const size of [0, 100, 1000, 5000]) { expect(router._cache.size).toBe(size) expect(router.state.location.pathname).toBe('/') describe(`${size} cached preloads`, () => { - bench('two unrelated navigations', navigate, { - time: 1000, - warmupTime: 200, + test('two unrelated navigations', async ({ bench }) => { + await bench('two unrelated navigations', navigate).run({ + time: 1000, + warmupTime: 200, + }) }) }) } diff --git a/packages/router-core/tests/closing-tag-detection.bench.ts b/packages/router-core/tests/closing-tag-detection.bench.ts index 5a52f6c5800..641c016bb4c 100644 --- a/packages/router-core/tests/closing-tag-detection.bench.ts +++ b/packages/router-core/tests/closing-tag-detection.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' const BODY_END_TAG = '' const MIN_CLOSING_TAG_LENGTH = 4 @@ -680,204 +680,284 @@ verifyBodyImplementations() describe('Closing Tag Detection - Small Chunk (~70 chars)', () => { const chunk = generateSmallChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - Medium Chunk (~1.5KB)', () => { const chunk = generateMediumChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - Large Chunk (~13KB)', () => { const chunk = generateLargeChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - Web Components', () => { const chunk = generateWebComponentChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - No Closing Tags (worst case for regex)', () => { const chunk = generateNoClosingTagChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - Nested React-like Structure', () => { const chunk = generateNestedChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) describe('Closing Tag Detection - Partial Chunk (streaming edge case)', () => { const chunk = generatePartialChunk() - bench('regex', () => { - findLastClosingTagRegex(chunk) + test('regex', async ({ bench }) => { + await bench('regex', () => { + findLastClosingTagRegex(chunk) + }).run() }) - bench('manual backwards scan', () => { - findLastClosingTagManual(chunk) + test('manual backwards scan', async ({ bench }) => { + await bench('manual backwards scan', () => { + findLastClosingTagManual(chunk) + }).run() }) - bench('optimized (charCodeAt)', () => { - findLastClosingTagOptimized(chunk) + test('optimized (charCodeAt)', async ({ bench }) => { + await bench('optimized (charCodeAt)', () => { + findLastClosingTagOptimized(chunk) + }).run() }) - bench('hybrid (lastIndexOf + validation)', () => { - findLastClosingTagHybrid(chunk) + test('hybrid (lastIndexOf + validation)', async ({ bench }) => { + await bench('hybrid (lastIndexOf + validation)', () => { + findLastClosingTagHybrid(chunk) + }).run() }) }) function benchBodyEndTagDetection(name: string, chunk: string) { describe(`Body End Tag Detection - ${name}`, () => { - bench('forward charCodeAt', () => { - findBodyEndTagForward(chunk) + test('forward charCodeAt', async ({ bench }) => { + await bench('forward charCodeAt', () => { + findBodyEndTagForward(chunk) + }).run() }) - bench('backward charCodeAt', () => { - findBodyEndTagBackward(chunk) + test('backward charCodeAt', async ({ bench }) => { + await bench('backward charCodeAt', () => { + findBodyEndTagBackward(chunk) + }).run() }) - bench('lastIndexOf( { - findBodyEndTagLastOpenSlash(chunk) + test('lastIndexOf( { + await bench('lastIndexOf( { + findBodyEndTagLastOpenSlash(chunk) + }).run() }) - bench('native lowercase + lastIndexOf( { - findBodyEndTagNativeLowerThenLastOpenSlash(chunk) + test('native lowercase + lastIndexOf( { + await bench('native lowercase + lastIndexOf( { + findBodyEndTagNativeLowerThenLastOpenSlash(chunk) + }).run() }) - bench('combined boundary scan', () => { - findHtmlBoundaryCombined(chunk).bodyEndIndex + test('combined boundary scan', async ({ bench }) => { + await bench('combined boundary scan', () => { + findHtmlBoundaryCombined(chunk).bodyEndIndex + }).run() }) }) } function benchBoundaryDetection(name: string, chunk: string) { describe(`HTML Boundary Detection - ${name}`, () => { - bench('current two-step forward body + last closing', () => { - const bodyEndIndex = findBodyEndTagForward(chunk) - if (bodyEndIndex === -1) { - findLastClosingTagOptimized(chunk) - } + test('current two-step forward body + last closing', async ({ bench }) => { + await bench('current two-step forward body + last closing', () => { + const bodyEndIndex = findBodyEndTagForward(chunk) + if (bodyEndIndex === -1) { + findLastClosingTagOptimized(chunk) + } + }).run() }) - bench('lastIndexOf( { - const bodyEndIndex = findBodyEndTagLastOpenSlash(chunk) - if (bodyEndIndex === -1) { - findLastClosingTagOptimized(chunk) - } + test('lastIndexOf( { + await bench('lastIndexOf( { + const bodyEndIndex = findBodyEndTagLastOpenSlash(chunk) + if (bodyEndIndex === -1) { + findLastClosingTagOptimized(chunk) + } + }).run() }) - bench('native lowercase body + last closing', () => { - const bodyEndIndex = findBodyEndTagNativeLowerThenLastOpenSlash(chunk) - if (bodyEndIndex === -1) { - findLastClosingTagOptimized(chunk) - } + test('native lowercase body + last closing', async ({ bench }) => { + await bench('native lowercase body + last closing', () => { + const bodyEndIndex = findBodyEndTagNativeLowerThenLastOpenSlash(chunk) + if (bodyEndIndex === -1) { + findLastClosingTagOptimized(chunk) + } + }).run() }) - bench('fused lastIndexOf( { - findHtmlBoundaryLastOpenSlash(chunk) + test('fused lastIndexOf( { + await bench('fused lastIndexOf( { + findHtmlBoundaryLastOpenSlash(chunk) + }).run() }) - bench('lazy fused lastIndexOf( { - findHtmlBoundaryLastOpenSlashLazy(chunk) + test('lazy fused lastIndexOf( { + await bench('lazy fused lastIndexOf( { + findHtmlBoundaryLastOpenSlashLazy(chunk) + }).run() }) - bench('lazy encoded lastIndexOf( { - findHtmlBoundaryLastOpenSlashLazyEncoded(chunk) + test('lazy encoded lastIndexOf( { + await bench('lazy encoded lastIndexOf( { + findHtmlBoundaryLastOpenSlashLazyEncoded(chunk) + }).run() }) - bench('combined boundary scan', () => { - findHtmlBoundaryCombined(chunk) + test('combined boundary scan', async ({ bench }) => { + await bench('combined boundary scan', () => { + findHtmlBoundaryCombined(chunk) + }).run() }) }) } diff --git a/packages/router-core/tests/deep-equal.bench.ts b/packages/router-core/tests/deep-equal.bench.ts index 2b2e788e167..c796add1acf 100644 --- a/packages/router-core/tests/deep-equal.bench.ts +++ b/packages/router-core/tests/deep-equal.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { deepEqual } from '../src/utils' // Workloads modeled on the router's callers: Link inline-option stabilization @@ -79,104 +79,87 @@ for (let index = 0; index < linkOptions.length; index++) { describe('deepEqual', () => { const options = { time: 1000, warmupTime: 200 } - bench( - 'equal flat search record (default)', - () => { + test('equal flat search record (default)', async ({ bench }) => { + await bench('equal flat search record (default)', () => { sink += +deepEqual(search, next(searchEqual)) - }, - options, - ) + }).run(options) + }) - bench( - 'equal flat record with a shared child (default)', - () => { + test('equal flat record with a shared child (default)', async ({ bench }) => { + await bench('equal flat record with a shared child (default)', () => { sink += +deepEqual(search, shared) - }, - options, - ) + }).run(options) + }) - bench( - 'equal flat record (explicitUndefined)', - () => { + test('equal flat record (explicitUndefined)', async ({ bench }) => { + await bench('equal flat record (explicitUndefined)', () => { sink += +deepEqual(search, next(searchEqual), false, true) - }, - options, - ) + }).run(options) + }) - bench( - 'equal flat record (partial)', - () => { + test('equal flat record (partial)', async ({ bench }) => { + await bench('equal flat record (partial)', () => { sink += +deepEqual(search, next(searchEqual), true) - }, - options, - ) + }).run(options) + }) - bench( - 'late mismatch in a nested array (default)', - () => { + test('late mismatch in a nested array (default)', async ({ bench }) => { + await bench('late mismatch in a nested array (default)', () => { sink += +deepEqual(search, next(searchChangedLate)) - }, - options, - ) + }).run(options) + }) - bench( - 'early mismatch (default)', - () => { + test('early mismatch (default)', async ({ bench }) => { + await bench('early mismatch (default)', () => { sink += +deepEqual(search, next(searchChangedEarly)) - }, - options, - ) + }).run(options) + }) - bench( - 'equal nested record (default)', - () => { + test('equal nested record (default)', async ({ bench }) => { + await bench('equal nested record (default)', () => { sink += +deepEqual(nested, next(nestedEqual)) - }, - options, - ) + }).run(options) + }) - bench( - 'equal array of 32 numbers', - () => { + test('equal array of 32 numbers', async ({ bench }) => { + await bench('equal array of 32 numbers', () => { sink += +deepEqual(numbers, next(numbersEqual)) - }, - options, - ) + }).run(options) + }) - bench( - 'fresh equal flat record (explicitUndefined)', - () => { + test('fresh equal flat record (explicitUndefined)', async ({ bench }) => { + await bench('fresh equal flat record (explicitUndefined)', () => { sink += +deepEqual( search, { page: 1, sort: 'asc', filter: 'open', tags: search.tags }, false, true, ) - }, - options, - ) + }).run(options) + }) - bench( - 'fresh partial mismatch', - () => { + test('fresh partial mismatch', async ({ bench }) => { + await bench('fresh partial mismatch', () => { sink += +deepEqual(search, { page: 1, sort: 'desc' }, true) - }, - options, - ) - - bench( - 'link option stabilization: 100 entries x 3 equal values', - () => { - for (let index = 0; index < linkOptions.length; index++) { - const previous = linkOptions[index]! - const incoming = linkOptionsEqual[index]! - for (let slot = 0; slot < 3; slot++) { - sink += +deepEqual(previous[slot], incoming[slot], false, true) + }).run(options) + }) + + test('link option stabilization: 100 entries x 3 equal values', async ({ + bench, + }) => { + await bench( + 'link option stabilization: 100 entries x 3 equal values', + () => { + for (let index = 0; index < linkOptions.length; index++) { + const previous = linkOptions[index]! + const incoming = linkOptionsEqual[index]! + for (let slot = 0; slot < 3; slot++) { + sink += +deepEqual(previous[slot], incoming[slot], false, true) + } } - } - }, - options, - ) + }, + ).run(options) + }) }) // Keep the results observable so the comparisons cannot be optimized away. diff --git a/packages/router-core/tests/fallback-route-lifecycle.bench.ts b/packages/router-core/tests/fallback-route-lifecycle.bench.ts index 5542aee292d..16468d473e0 100644 --- a/packages/router-core/tests/fallback-route-lifecycle.bench.ts +++ b/packages/router-core/tests/fallback-route-lifecycle.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { lifecycleEnd, runRouteLifecycle } from '../src/router' import type { AnyRouteMatch, AnyRouter, AnyRoute } from '../src' import type { LoadTransaction } from '../src/load-client' @@ -191,16 +191,16 @@ for (const depth of [1, 2, 3, 4, 5, 6]) { ['original', originalLifecycle], ['candidate', candidateLifecycle], ] as const) { - bench( - name, - () => { + test(name, async ({ bench }) => { + await bench(name, () => { for (let i = 0; i < 100; i++) { router._lifecycleEnd = previousEnd run(router, previous, matches, owner) } - }, - { time: 300 }, - ) + }).run({ + time: 300, + }) + }) } }) } diff --git a/packages/router-core/tests/hydrationQueue.bench.ts b/packages/router-core/tests/hydrationQueue.bench.ts index 821cbeb5adc..04679b3c5ce 100644 --- a/packages/router-core/tests/hydrationQueue.bench.ts +++ b/packages/router-core/tests/hydrationQueue.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' const MAX_DYNAMIC_RECORD_CODE_UNITS = 64 * 1024 const SOURCE_SEPARATOR = ';' @@ -93,11 +93,15 @@ if ( } describe('maximum hydration source queue with 4 KiB sources', () => { - bench('front splice', () => { - return void (benchmarkSink = drainWithSplice(sources.slice())) + test('front splice', async ({ bench }) => { + await bench('front splice', () => { + return void (benchmarkSink = drainWithSplice(sources.slice())) + }).run() }) - bench('head index with compaction', () => { - return void (benchmarkSink = drainWithHead(sources.slice())) + test('head index with compaction', async ({ bench }) => { + await bench('head index with compaction', () => { + return void (benchmarkSink = drainWithHead(sources.slice())) + }).run() }) }) diff --git a/packages/router-core/tests/lightweight-location.bench.ts b/packages/router-core/tests/lightweight-location.bench.ts index 2470f40cc13..44f70c9d538 100644 --- a/packages/router-core/tests/lightweight-location.bench.ts +++ b/packages/router-core/tests/lightweight-location.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute, BaseRoute } from '../src' import { createTestRouter } from './routerTestUtils' @@ -46,13 +46,20 @@ describe.each([false, true])( } run() expect(checksum).toBe(iterations * '/target'.length) - bench(`${count} source params`, run, { - time: 1000, - warmupTime: 200, - throws: true, - teardown: () => { - expect(checksum).toBe(iterations * '/target'.length) - }, + test(`${count} source params`, async ({ bench }) => { + await bench( + `${count} source params`, + { + afterAll: () => { + expect(checksum).toBe(iterations * '/target'.length) + }, + }, + run, + ).run({ + time: 1000, + warmupTime: 200, + throws: true, + }) }) } }, diff --git a/packages/router-core/tests/matching-interpolation.bench.ts b/packages/router-core/tests/matching-interpolation.bench.ts index f86cd0b87e1..03fe060bfa9 100644 --- a/packages/router-core/tests/matching-interpolation.bench.ts +++ b/packages/router-core/tests/matching-interpolation.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute, BaseRoute } from '../src' import { createTestRouter } from './routerTestUtils' @@ -95,25 +95,26 @@ for (const server of [false, true]) { } } let checksum = 0 - bench( - scenario.name, - () => { - let length = 0 - for (const path of scenario.paths) { - for (const match of router.matchRoutes(path, {}, options)) { - length += - match.id.length + Object.keys(match._strictParams).length + test(scenario.name, async ({ bench }) => { + await bench( + scenario.name, + { afterAll: () => expect(checksum).toBe(expected) }, + () => { + let length = 0 + for (const path of scenario.paths) { + for (const match of router.matchRoutes(path, {}, options)) { + length += + match.id.length + Object.keys(match._strictParams).length + } } - } - checksum = length - }, - { + checksum = length + }, + ).run({ time: 1000, warmupTime: 300, throws: true, - teardown: () => expect(checksum).toBe(expected), - }, - ) + }) + }) } }) } diff --git a/packages/router-core/tests/new-process-route-tree.test.ts b/packages/router-core/tests/new-process-route-tree.test.ts index 3a1db0338d1..86a7c4e659e 100644 --- a/packages/router-core/tests/new-process-route-tree.test.ts +++ b/packages/router-core/tests/new-process-route-tree.test.ts @@ -1961,7 +1961,7 @@ describe('findRouteMatch', () => { }) }) -describe('processRouteMasks', { sequential: true }, () => { +describe('processRouteMasks', { concurrent: false }, () => { const routeTree = { id: '__root__', isRoot: true, diff --git a/packages/router-core/tests/path-decoder.bench.ts b/packages/router-core/tests/path-decoder.bench.ts index 23060b33be6..4c56a8aa761 100644 --- a/packages/router-core/tests/path-decoder.bench.ts +++ b/packages/router-core/tests/path-decoder.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute, BaseRoute } from '../src' import { createTestRouter } from './routerTestUtils' @@ -51,11 +51,16 @@ describe.each(['stable', 'new-router', 'no-update'] as const)( } run() verify() - bench('update and build 200 locations', run, { - time: 1500, - warmupTime: 500, - throws: true, - teardown: verify, + test('update and build 200 locations', async ({ bench }) => { + await bench( + 'update and build 200 locations', + { afterAll: verify }, + run, + ).run({ + time: 1500, + warmupTime: 500, + throws: true, + }) }) }, ) diff --git a/packages/router-core/tests/path-interpolation.bench.ts b/packages/router-core/tests/path-interpolation.bench.ts index 53498b5198a..80d34785948 100644 --- a/packages/router-core/tests/path-interpolation.bench.ts +++ b/packages/router-core/tests/path-interpolation.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory, normalizeProtocolRelative, @@ -203,79 +203,88 @@ describe.each(scenarios)('$name', ({ inputs, register = true }) => { : parseSegments(false, { fullPath: input.path }, 0), })) - bench( - 'interpolation and normalization batch', - () => { - let length = 0 - for (const call of calls) { - length += canonicalPathname(call.path, call.params, call.route).length - } - checksum = length - }, - { + test('interpolation and normalization batch', async ({ bench }) => { + await bench( + 'interpolation and normalization batch', + { + afterAll: () => { + expect(checksum).toBe(cachedExpected) + }, + }, + () => { + let length = 0 + for (const call of calls) { + length += canonicalPathname(call.path, call.params, call.route).length + } + checksum = length + }, + ).run({ time: 1500, warmupTime: 500, throws: true, - teardown: () => { - expect(checksum).toBe(cachedExpected) - }, - }, - ) + }) + }) - bench( - 'prepared pathname interpolation batch', - () => { - let length = 0 - for (const input of preparedInputs) { - length += ( - input.segments - ? interpolatePath( - input.path, - input.segments, - input.params, - input.decoder, - ) - : input.path - ).length - } - checksum = length - }, - { + test('prepared pathname interpolation batch', async ({ bench }) => { + await bench( + 'prepared pathname interpolation batch', + { + afterAll: () => { + expect(checksum).toBe(expected) + }, + }, + () => { + let length = 0 + for (const input of preparedInputs) { + length += ( + input.segments + ? interpolatePath( + input.path, + input.segments, + input.params, + input.decoder, + ) + : input.path + ).length + } + checksum = length + }, + ).run({ time: 1500, warmupTime: 500, throws: true, - teardown: () => { - expect(checksum).toBe(expected) - }, - }, - ) + }) + }) - bench( - 'prepared metadata interpolation batch', - () => { - let length = 0 - for (const input of preparedInputs) { - length += ( - input.segments - ? interpolatePath( - input.path, - input.segments, - input.params, - input.decoder, - Object.create(null), - ) - : input.path - ).length - } - checksum = length - }, - { + test('prepared metadata interpolation batch', async ({ bench }) => { + await bench( + 'prepared metadata interpolation batch', + { + afterAll: () => { + expect(checksum).toBe(expected) + }, + }, + () => { + let length = 0 + for (const input of preparedInputs) { + length += ( + input.segments + ? interpolatePath( + input.path, + input.segments, + input.params, + input.decoder, + Object.create(null), + ) + : input.path + ).length + } + checksum = length + }, + ).run({ time: 1500, warmupTime: 500, throws: true, - teardown: () => { - expect(checksum).toBe(expected) - }, - }, - ) + }) + }) }) diff --git a/packages/router-core/tests/replace-equal-deep.bench.ts b/packages/router-core/tests/replace-equal-deep.bench.ts index 86639cb26d6..044fbe38bc2 100644 --- a/packages/router-core/tests/replace-equal-deep.bench.ts +++ b/packages/router-core/tests/replace-equal-deep.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createNull, deepEqual, @@ -199,213 +199,303 @@ const iterations = 1_000 let sink: unknown describe('isPlainObject', () => { - bench('literal', () => { - for (let i = 0; i < iterations; i++) { - sink = isPlainObject(search) - } + test('literal', async ({ bench }) => { + await bench('literal', () => { + for (let i = 0; i < iterations; i++) { + sink = isPlainObject(search) + } + }).run() }) - bench('null-proto record', () => { - for (let i = 0; i < iterations; i++) { - sink = isPlainObject(emptyNull) - } + test('null-proto record', async ({ bench }) => { + await bench('null-proto record', () => { + for (let i = 0; i < iterations; i++) { + sink = isPlainObject(emptyNull) + } + }).run() }) - bench('null-proto record with a constructor key', () => { - for (let i = 0; i < iterations; i++) { - sink = isPlainObject(searchWithConstructorKey) - } + test('null-proto record with a constructor key', async ({ bench }) => { + await bench('null-proto record with a constructor key', () => { + for (let i = 0; i < iterations; i++) { + sink = isPlainObject(searchWithConstructorKey) + } + }).run() }) - bench('class instance', () => { - for (let i = 0; i < iterations; i++) { - sink = isPlainObject(instance) - } + test('class instance', async ({ bench }) => { + await bench('class instance', () => { + for (let i = 0; i < iterations; i++) { + sink = isPlainObject(instance) + } + }).run() }) }) describe('replaceEqualDeep', () => { - bench('equal empty objects', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(empty, {}) - } - }) - - bench('equal empty null-proto objects', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(emptyNull, createNull()) - } + test('equal empty objects', async ({ bench }) => { + await bench('equal empty objects', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(empty, {}) + } + }).run() }) - bench('equal null-proto search with a constructor key', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep( - searchWithConstructorKey, - searchWithConstructorKeyCopy, - ) - } + test('equal empty null-proto objects', async ({ bench }) => { + await bench('equal empty null-proto objects', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(emptyNull, createNull()) + } + }).run() }) - bench('equal flat search', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(search, searchCopy) - } + test('equal null-proto search with a constructor key', async ({ bench }) => { + await bench('equal null-proto search with a constructor key', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep( + searchWithConstructorKey, + searchWithConstructorKeyCopy, + ) + } + }).run() }) - bench('flat search with one changed leaf', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(search, searchChanged) - } + test('equal flat search', async ({ bench }) => { + await bench('equal flat search', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(search, searchCopy) + } + }).run() }) - bench('equal parsed null-proto search', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(nullSearch, nullSearchCopy) - } + test('flat search with one changed leaf', async ({ bench }) => { + await bench('flat search with one changed leaf', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(search, searchChanged) + } + }).run() }) - bench('equal ordinary search against a null-proto previous value', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(nullSearch, searchCopy) - } + test('equal parsed null-proto search', async ({ bench }) => { + await bench('equal parsed null-proto search', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(nullSearch, nullSearchCopy) + } + }).run() }) - bench('parsed null-proto search with one changed leaf', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(nullSearch, nullSearchChanged) - } + test('equal ordinary search against a null-proto previous value', async ({ + bench, + }) => { + await bench( + 'equal ordinary search against a null-proto previous value', + () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(nullSearch, searchCopy) + } + }, + ).run() }) - bench('ordinary search update in null-proto mode', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(nullSearch, searchChanged) - } + test('parsed null-proto search with one changed leaf', async ({ bench }) => { + await bench('parsed null-proto search with one changed leaf', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(nullSearch, nullSearchChanged) + } + }).run() }) - bench('equal ordinary search in null-proto mode', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(search, searchCopy) - } + test('ordinary search update in null-proto mode', async ({ bench }) => { + await bench('ordinary search update in null-proto mode', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(nullSearch, searchChanged) + } + }).run() }) - bench('successive ordinary search update in null-proto mode', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(search, searchChanged) - } + test('equal ordinary search in null-proto mode', async ({ bench }) => { + await bench('equal ordinary search in null-proto mode', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(search, searchCopy) + } + }).run() }) - bench('changed selector followed by the same incoming reference', () => { - for (let i = 0; i < iterations; i++) { - const current = replaceEqualDeep(search, searchChanged) - sink = replaceEqualDeep(current, searchChanged) - } + test('successive ordinary search update in null-proto mode', async ({ + bench, + }) => { + await bench('successive ordinary search update in null-proto mode', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(search, searchChanged) + } + }).run() + }) + + test('changed selector followed by the same incoming reference', async ({ + bench, + }) => { + await bench( + 'changed selector followed by the same incoming reference', + () => { + for (let i = 0; i < iterations; i++) { + const current = replaceEqualDeep(search, searchChanged) + sink = replaceEqualDeep(current, searchChanged) + } + }, + ).run() }) - bench('equal record with decimal values', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(decimalRecord, decimalRecordCopy) - } + test('equal record with decimal values', async ({ bench }) => { + await bench('equal record with decimal values', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(decimalRecord, decimalRecordCopy) + } + }).run() }) - bench('changed record with decimal values', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(decimalRecord, decimalRecordChanged) - } + test('changed record with decimal values', async ({ bench }) => { + await bench('changed record with decimal values', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(decimalRecord, decimalRecordChanged) + } + }).run() }) - bench('equal nested search', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(nested, nestedCopy) - } + test('equal nested search', async ({ bench }) => { + await bench('equal nested search', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(nested, nestedCopy) + } + }).run() }) - bench('nested search sharing unchanged subtrees', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(nested, nestedLeafChanged) - } + test('nested search sharing unchanged subtrees', async ({ bench }) => { + await bench('nested search sharing unchanged subtrees', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(nested, nestedLeafChanged) + } + }).run() }) - bench('nested search sharing unchanged subtrees in null-proto mode', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(nested, nestedLeafChanged) - } + test('nested search sharing unchanged subtrees in null-proto mode', async ({ + bench, + }) => { + await bench( + 'nested search sharing unchanged subtrees in null-proto mode', + () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(nested, nestedLeafChanged) + } + }, + ).run() }) - bench('equal array of objects', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(list, listCopy) - } + test('equal array of objects', async ({ bench }) => { + await bench('equal array of objects', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(list, listCopy) + } + }).run() }) - bench('array of objects with one changed item', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(list, listChanged) - } + test('array of objects with one changed item', async ({ bench }) => { + await bench('array of objects with one changed item', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(list, listChanged) + } + }).run() }) - bench('wide flat object with one changed leaf', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(wide, wideChanged) - } + test('wide flat object with one changed leaf', async ({ bench }) => { + await bench('wide flat object with one changed leaf', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(wide, wideChanged) + } + }).run() }) - bench('wide flat object with one changed leaf (null-proto)', () => { - for (let i = 0; i < iterations; i++) { - sink = nullReplaceEqualDeep(wide, wideChanged) - } + test('wide flat object with one changed leaf (null-proto)', async ({ + bench, + }) => { + await bench('wide flat object with one changed leaf (null-proto)', () => { + for (let i = 0; i < iterations; i++) { + sink = nullReplaceEqualDeep(wide, wideChanged) + } + }).run() }) - bench('flat search with all leaves changed', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(search, searchAllChanged) - } + test('flat search with all leaves changed', async ({ bench }) => { + await bench('flat search with all leaves changed', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(search, searchAllChanged) + } + }).run() }) - bench('equal flat search with reordered keys', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(search, searchReordered) - } + test('equal flat search with reordered keys', async ({ bench }) => { + await bench('equal flat search with reordered keys', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(search, searchReordered) + } + }).run() }) - bench('flat search with a key removed', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(search, searchSubset) - } + test('flat search with a key removed', async ({ bench }) => { + await bench('flat search with a key removed', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(search, searchSubset) + } + }).run() }) - bench('array of shared objects with one changed item', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(list, listShared) - } + test('array of shared objects with one changed item', async ({ bench }) => { + await bench('array of shared objects with one changed item', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(list, listShared) + } + }).run() }) - bench('wider flat object (64 keys) with the last leaf changed', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(wider, widerChangedLast) - } + test('wider flat object (64 keys) with the last leaf changed', async ({ + bench, + }) => { + await bench( + 'wider flat object (64 keys) with the last leaf changed', + () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(wider, widerChangedLast) + } + }, + ).run() }) - bench('flat object growing from 8 to 64 keys', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(widerSubset, wider) - } + test('flat object growing from 8 to 64 keys', async ({ bench }) => { + await bench('flat object growing from 8 to 64 keys', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(widerSubset, wider) + } + }).run() }) for (const [name, next] of [ ['first leaf changed', widerChangedFirst], ['all leaves changed', widerAllChanged], ] as const) { - bench(`wider flat object (64 keys) with ${name}`, () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(wider, next) - } + test(`wider flat object (64 keys) with ${name}`, async ({ bench }) => { + await bench(`wider flat object (64 keys) with ${name}`, () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(wider, next) + } + }).run() }) } - bench('equal long array of shared objects', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(longList, longListCopy) - } + test('equal long array of shared objects', async ({ bench }) => { + await bench('equal long array of shared objects', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(longList, longListCopy) + } + }).run() }) for (const [name, next] of [ @@ -413,10 +503,17 @@ describe('replaceEqualDeep', () => { ['changed', longListChangedLast], ['changed after a cloned but equal item', longListClonedThenChanged], ] as const) { - bench(`long array of shared objects with the last item ${name}`, () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(longList, next) - } + test(`long array of shared objects with the last item ${name}`, async ({ + bench, + }) => { + await bench( + `long array of shared objects with the last item ${name}`, + () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(longList, next) + } + }, + ).run() }) } @@ -424,23 +521,29 @@ describe('replaceEqualDeep', () => { const prev = Array.from({ length }, (_, index) => index) const next = [...prev] expect(replaceEqualDeep(prev, next)).toBe(prev) - bench(`equal primitive array of length ${length}`, () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(prev, next) - } + test(`equal primitive array of length ${length}`, async ({ bench }) => { + await bench(`equal primitive array of length ${length}`, () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(prev, next) + } + }).run() }) } - bench('equal long primitive array', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(numbers, numbersCopy) - } + test('equal long primitive array', async ({ bench }) => { + await bench('equal long primitive array', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(numbers, numbersCopy) + } + }).run() }) - bench('long primitive array with the last item changed', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(numbers, numbersChangedLast) - } + test('long primitive array with the last item changed', async ({ bench }) => { + await bench('long primitive array with the last item changed', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(numbers, numbersChangedLast) + } + }).run() }) for (const [name, next] of [ @@ -450,88 +553,112 @@ describe('replaceEqualDeep', () => { ['shortened', numbersShorter], ['appended undefined values', numbersLonger], ] as const) { - bench(`long primitive array with ${name}`, () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(numbers, next) - } + test(`long primitive array with ${name}`, async ({ bench }) => { + await bench(`long primitive array with ${name}`, () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(numbers, next) + } + }).run() }) } - bench('small primitive array with the first item changed', () => { - for (let i = 0; i < iterations; i++) { - sink = replaceEqualDeep(smallNumbers, smallNumbersChanged) - } - }) - - bench('mixed search and array updates', () => { - for (let i = 0; i < iterations; i++) { - const [prev, next] = mixedPairs[i % mixedPairs.length]! - sink = replaceEqualDeep(prev, next) - } + test('small primitive array with the first item changed', async ({ + bench, + }) => { + await bench('small primitive array with the first item changed', () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(smallNumbers, smallNumbersChanged) + } + }).run() }) - for (const { name, prev, next } of numericResults) { - bench(`long ${name} array with the last item changed`, () => { + test('mixed search and array updates', async ({ bench }) => { + await bench('mixed search and array updates', () => { for (let i = 0; i < iterations; i++) { + const [prev, next] = mixedPairs[i % mixedPairs.length]! sink = replaceEqualDeep(prev, next) } + }).run() + }) + + for (const { name, prev, next } of numericResults) { + test(`long ${name} array with the last item changed`, async ({ bench }) => { + await bench(`long ${name} array with the last item changed`, () => { + for (let i = 0; i < iterations; i++) { + sink = replaceEqualDeep(prev, next) + } + }).run() }) } }) describe('consume structurally shared arrays', () => { - bench('sum changed primitive array by index', () => { - for (let i = 0; i < iterations; i++) { - let sum = 0 - for (let j = 0; j < consumedNumbers.length; j++) { - sum += consumedNumbers[j]! + test('sum changed primitive array by index', async ({ bench }) => { + await bench('sum changed primitive array by index', () => { + for (let i = 0; i < iterations; i++) { + let sum = 0 + for (let j = 0; j < consumedNumbers.length; j++) { + sum += consumedNumbers[j]! + } + sink = sum } - sink = sum - } + }).run() }) - bench('reduce changed primitive array', () => { - for (let i = 0; i < iterations; i++) { - sink = consumedNumbers.reduce((sum, value) => sum + value, 0) - } + test('reduce changed primitive array', async ({ bench }) => { + await bench('reduce changed primitive array', () => { + for (let i = 0; i < iterations; i++) { + sink = consumedNumbers.reduce((sum, value) => sum + value, 0) + } + }).run() }) for (const { name, result } of numericResults) { - bench(`sum changed ${name} array by index`, () => { - for (let i = 0; i < iterations; i++) { - let sum = 0 - for (let j = 0; j < result.length; j++) { - sum += result[j]! + test(`sum changed ${name} array by index`, async ({ bench }) => { + await bench(`sum changed ${name} array by index`, () => { + for (let i = 0; i < iterations; i++) { + let sum = 0 + for (let j = 0; j < result.length; j++) { + sum += result[j]! + } + sink = sum } - sink = sum - } + }).run() }) - bench(`reduce changed ${name} array`, () => { - for (let i = 0; i < iterations; i++) { - sink = result.reduce((sum, value) => sum + value, 0) - } + test(`reduce changed ${name} array`, async ({ bench }) => { + await bench(`reduce changed ${name} array`, () => { + for (let i = 0; i < iterations; i++) { + sink = result.reduce((sum, value) => sum + value, 0) + } + }).run() }) } }) describe('deepEqual', () => { - bench('equal empty objects', () => { - for (let i = 0; i < iterations; i++) { - sink = deepEqual(empty, {}) - } + test('equal empty objects', async ({ bench }) => { + await bench('equal empty objects', () => { + for (let i = 0; i < iterations; i++) { + sink = deepEqual(empty, {}) + } + }).run() }) - bench('equal flat search (partial)', () => { - for (let i = 0; i < iterations; i++) { - sink = deepEqual(search, searchCopy, true) - } + test('equal flat search (partial)', async ({ bench }) => { + await bench('equal flat search (partial)', () => { + for (let i = 0; i < iterations; i++) { + sink = deepEqual(search, searchCopy, true) + } + }).run() }) - bench('nested search with one changed leaf', () => { - for (let i = 0; i < iterations; i++) { - sink = deepEqual(nested, nestedLeafChanged) - } + test('nested search with one changed leaf', async ({ bench }) => { + await bench('nested search with one changed leaf', () => { + for (let i = 0; i < iterations; i++) { + sink = deepEqual(nested, nestedLeafChanged) + } + }).run() }) }) diff --git a/packages/router-core/tests/rewrite.bench.ts b/packages/router-core/tests/rewrite.bench.ts index 0ccf78cb821..1f7b88d610c 100644 --- a/packages/router-core/tests/rewrite.bench.ts +++ b/packages/router-core/tests/rewrite.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { createMemoryHistory } from '@tanstack/history' import { BaseRootRoute } from '../src' import { @@ -89,50 +89,59 @@ describe.each([ url = executeRewriteOutput(rewrite, url) expect(url.href).toBe('https://example.com/app/public?sort=name#title') - bench( - `${name} round trip`, - () => { - // Reuse the round-trip URL so URL construction does not hide the - // composition cost for callbacks that mutate or leave it unchanged. - for (let index = 0; index < 64; index++) { - url = executeRewriteOutput(rewrite, executeRewriteInput(rewrite, url)) - } - }, - { + test(`${name} round trip`, async ({ bench }) => { + await bench( + `${name} round trip`, + { + afterAll: () => { + expect(url.href).toBe( + 'https://example.com/app/public?sort=name#title', + ) + }, + }, + () => { + // Reuse the round-trip URL so URL construction does not hide the + // composition cost for callbacks that mutate or leave it unchanged. + for (let index = 0; index < 64; index++) { + url = executeRewriteOutput( + rewrite, + executeRewriteInput(rewrite, url), + ) + } + }, + ).run({ time: 1000, warmupTime: 200, throws: true, - teardown: () => { - expect(url.href).toBe( - 'https://example.com/app/public?sort=name#title', - ) - }, - }, - ) + }) + }) } let trailingSlash = false - bench( - 'router update rebuilding the rewrite', - () => { - if (custom) { - router.update({ rewrite: { ...custom } }) - } else { - trailingSlash = !trailingSlash - router.update({ basepath: trailingSlash ? '/app/' : '/app' }) - } - }, - { + test('router update rebuilding the rewrite', async ({ bench }) => { + await bench( + 'router update rebuilding the rewrite', + { + afterAll: () => { + expect(router.latestLocation.pathname).toBe( + unchanged ? '/public' : '/internal', + ) + }, + }, + () => { + if (custom) { + router.update({ rewrite: { ...custom } }) + } else { + trailingSlash = !trailingSlash + router.update({ basepath: trailingSlash ? '/app/' : '/app' }) + } + }, + ).run({ time: 1000, warmupTime: 200, throws: true, - teardown: () => { - expect(router.latestLocation.pathname).toBe( - unchanged ? '/public' : '/internal', - ) - }, - }, - ) + }) + }) }) describe.each(['/', '/app'])('unchanged rewrite options (%s)', (basepath) => { @@ -152,17 +161,20 @@ describe.each(['/', '/app'])('unchanged rewrite options (%s)', (basepath) => { expect(router.rewrite).toBe(rewrite) expect(router.latestLocation.pathname).toBe('/public') - bench( - 'router update without rebuilding the rewrite', - () => router.update({}), - { + test('router update without rebuilding the rewrite', async ({ bench }) => { + await bench( + 'router update without rebuilding the rewrite', + { + afterAll: () => { + expect(router.rewrite).toBe(rewrite) + expect(router.latestLocation.pathname).toBe('/public') + }, + }, + () => router.update({}), + ).run({ time: 1000, warmupTime: 200, throws: true, - teardown: () => { - expect(router.rewrite).toBe(rewrite) - expect(router.latestLocation.pathname).toBe('/public') - }, - }, - ) + }) + }) }) diff --git a/packages/router-core/tests/route-tree-construction.bench.ts b/packages/router-core/tests/route-tree-construction.bench.ts index 6d564d9e849..e567f06d360 100644 --- a/packages/router-core/tests/route-tree-construction.bench.ts +++ b/packages/router-core/tests/route-tree-construction.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { BaseRootRoute, BaseRoute } from '../src' import { findRouteMatch, processRouteTree } from '../src/new-process-route-tree' import type { AnyRoute } from '../src' @@ -62,37 +62,42 @@ for (const count of [100, 1000, 10000]) { } verify() - bench( - 'processRouteTree + route.init on fresh objects', - () => { - result = processRouteTree(tree) - }, - { - setup: (task) => { - // Vitest forwards Bench options, not per-iteration Task options. - task.opts.beforeEach = () => { + test('processRouteTree + route.init on fresh objects', async ({ + bench, + }) => { + await bench( + 'processRouteTree + route.init on fresh objects', + { + beforeEach: () => { tree = createTree(count, shape) - } + }, + afterAll: verify, }, - teardown: verify, + () => { + result = processRouteTree(tree) + }, + ).run({ time: 1500, warmupTime: 500, throws: true, - }, - ) + }) + }) - bench( - 'route objects + processRouteTree + route.init', - () => { - result = processRouteTree(createTree(count, shape)) - }, - { - teardown: verify, + test('route objects + processRouteTree + route.init', async ({ + bench, + }) => { + await bench( + 'route objects + processRouteTree + route.init', + { afterAll: verify }, + () => { + result = processRouteTree(createTree(count, shape)) + }, + ).run({ time: 1500, warmupTime: 500, throws: true, - }, - ) + }) + }) }, ) } diff --git a/packages/router-core/tests/searchParams-parse.bench.ts b/packages/router-core/tests/searchParams-parse.bench.ts index ff94dcb99e6..79f7e3e5aca 100644 --- a/packages/router-core/tests/searchParams-parse.bench.ts +++ b/packages/router-core/tests/searchParams-parse.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { defaultParseSearch, parseSearchWith } from '../src' const iterations = 1_000 @@ -184,60 +184,96 @@ const searches = Object.fromEntries( ) describe('default search parsing', () => { - bench('ordinary string values', () => { - parseBatch(searches.ordinaryStrings!) + test('ordinary string values', async ({ bench }) => { + await bench('ordinary string values', () => { + parseBatch(searches.ordinaryStrings!) + }).run() }) - bench('ordinary strings outside JSON-literal initials', () => { - parseBatch(searches.nonLiteralInitialStrings!) + test('ordinary strings outside JSON-literal initials', async ({ bench }) => { + await bench('ordinary strings outside JSON-literal initials', () => { + parseBatch(searches.nonLiteralInitialStrings!) + }).run() }) - bench('ordinary strings with JSON-literal initials', () => { - parseBatch(searches.jsonInitialStrings!) + test('ordinary strings with JSON-literal initials', async ({ bench }) => { + await bench('ordinary strings with JSON-literal initials', () => { + parseBatch(searches.jsonInitialStrings!) + }).run() }) - bench('empty string values', () => { - parseBatch(searches.emptyStrings!) + test('empty string values', async ({ bench }) => { + await bench('empty string values', () => { + parseBatch(searches.emptyStrings!) + }).run() }) - bench('ordinary strings with non-JSON punctuation starts', () => { - parseBatch(searches.punctuationStrings!) + test('ordinary strings with non-JSON punctuation starts', async ({ + bench, + }) => { + await bench('ordinary strings with non-JSON punctuation starts', () => { + parseBatch(searches.punctuationStrings!) + }).run() }) - bench('ordinary f/n/t words outside JSON-literal prefixes', () => { - parseBatch(searches.nonLiteralPrefixStrings!) + test('ordinary f/n/t words outside JSON-literal prefixes', async ({ + bench, + }) => { + await bench('ordinary f/n/t words outside JSON-literal prefixes', () => { + parseBatch(searches.nonLiteralPrefixStrings!) + }).run() }) - bench('application words with JSON-literal prefixes', () => { - parseBatch(searches.jsonLiteralPrefixStrings!) + test('application words with JSON-literal prefixes', async ({ bench }) => { + await bench('application words with JSON-literal prefixes', () => { + parseBatch(searches.jsonLiteralPrefixStrings!) + }).run() }) - bench('application words with complete JSON-literal prefixes', () => { - parseBatch(searches.jsonLiteralWordStrings!) + test('application words with complete JSON-literal prefixes', async ({ + bench, + }) => { + await bench('application words with complete JSON-literal prefixes', () => { + parseBatch(searches.jsonLiteralWordStrings!) + }).run() }) - bench('JSON-literal prefixes followed by punctuation', () => { - parseBatch(searches.jsonLiteralBoundaryStrings!) + test('JSON-literal prefixes followed by punctuation', async ({ bench }) => { + await bench('JSON-literal prefixes followed by punctuation', () => { + parseBatch(searches.jsonLiteralBoundaryStrings!) + }).run() }) - bench('JSON-compatible string values', () => { - parseBatch(searches.jsonStrings!) + test('JSON-compatible string values', async ({ bench }) => { + await bench('JSON-compatible string values', () => { + parseBatch(searches.jsonStrings!) + }).run() }) - bench('mixed application values', () => { - parseBatch(searches.mixedValues!) + test('mixed application values', async ({ bench }) => { + await bench('mixed application values', () => { + parseBatch(searches.mixedValues!) + }).run() }) - bench('primitives already converted by decode', () => { - parseBatch(searches.decodedPrimitives!) + test('primitives already converted by decode', async ({ bench }) => { + await bench('primitives already converted by decode', () => { + parseBatch(searches.decodedPrimitives!) + }).run() }) - bench('strings requiring JSON.parse', () => { - parseBatch(searches.parsedJson!) + test('strings requiring JSON.parse', async ({ bench }) => { + await bench('strings requiring JSON.parse', () => { + parseBatch(searches.parsedJson!) + }).run() }) - bench('JSON with leading whitespace', () => { - parseBatch(searches.whitespaceJson!) + test('JSON with leading whitespace', async ({ bench }) => { + await bench('JSON with leading whitespace', () => { + parseBatch(searches.whitespaceJson!) + }).run() }) - bench('malformed JSON retains original strings', () => { - parseBatch(searches.malformedJson!) + test('malformed JSON retains original strings', async ({ bench }) => { + await bench('malformed JSON retains original strings', () => { + parseBatch(searches.malformedJson!) + }).run() }) }) @@ -248,16 +284,20 @@ expect(customParse(searches.ordinaryStrings!)).toEqual({ category: 'HARDWARE', sort: 'NEWEST', }) -bench('custom search parser ordinary strings', () => { - parseBatch(searches.ordinaryStrings!, customParse) +test('custom search parser ordinary strings', async ({ bench }) => { + await bench('custom search parser ordinary strings', () => { + parseBatch(searches.ordinaryStrings!, customParse) + }).run() }) const throwingParse = parseSearchWith(() => { throw new Error('not parseable') }) expect(throwingParse(searches.ordinaryStrings!)).toEqual(ordinaryStrings) -bench('custom search parser rejected strings', () => { - parseBatch(searches.ordinaryStrings!, throwingParse) +test('custom search parser rejected strings', async ({ bench }) => { + await bench('custom search parser rejected strings', () => { + parseBatch(searches.ordinaryStrings!, throwingParse) + }).run() }) const encodedMixed = new URLSearchParams([ @@ -279,8 +319,10 @@ expect(defaultParseSearch(encodedMixed)).toEqual({ category: 'favorite', tag: ['one', 'two'], }) -bench('encoded mixed search with repeated keys', () => { - parseBatch(encodedMixed) +test('encoded mixed search with repeated keys', async ({ bench }) => { + await bench('encoded mixed search with repeated keys', () => { + parseBatch(encodedMixed) + }).run() }) void benchmarkSink diff --git a/packages/router-core/tests/searchParams.bench.ts b/packages/router-core/tests/searchParams.bench.ts index 35fda3060f8..32d42b96fdc 100644 --- a/packages/router-core/tests/searchParams.bench.ts +++ b/packages/router-core/tests/searchParams.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { defaultStringifySearch } from '../src' const iterations = 1_000 @@ -112,56 +112,88 @@ function stringifyBatch(search: Record) { } describe('default search serialization', () => { - bench('empty object', () => { - stringifyBatch({}) + test('empty object', async ({ bench }) => { + await bench('empty object', () => { + stringifyBatch({}) + }).run() }) - bench('only undefined values', () => { - stringifyBatch({ first: undefined, second: undefined }) + test('only undefined values', async ({ bench }) => { + await bench('only undefined values', () => { + stringifyBatch({ first: undefined, second: undefined }) + }).run() }) - bench('ordinary string values', () => { - stringifyBatch(ordinaryStrings) + test('ordinary string values', async ({ bench }) => { + await bench('ordinary string values', () => { + stringifyBatch(ordinaryStrings) + }).run() }) - bench('ordinary strings outside JSON-literal initials', () => { - stringifyBatch(nonLiteralInitialStrings) + test('ordinary strings outside JSON-literal initials', async ({ bench }) => { + await bench('ordinary strings outside JSON-literal initials', () => { + stringifyBatch(nonLiteralInitialStrings) + }).run() }) - bench('ordinary strings with JSON-literal initials', () => { - stringifyBatch(jsonInitialStrings) + test('ordinary strings with JSON-literal initials', async ({ bench }) => { + await bench('ordinary strings with JSON-literal initials', () => { + stringifyBatch(jsonInitialStrings) + }).run() }) - bench('empty string values', () => { - stringifyBatch(emptyStrings) + test('empty string values', async ({ bench }) => { + await bench('empty string values', () => { + stringifyBatch(emptyStrings) + }).run() }) - bench('ordinary strings with non-JSON punctuation starts', () => { - stringifyBatch(punctuationStrings) + test('ordinary strings with non-JSON punctuation starts', async ({ + bench, + }) => { + await bench('ordinary strings with non-JSON punctuation starts', () => { + stringifyBatch(punctuationStrings) + }).run() }) - bench('ordinary f/n/t words outside JSON-literal prefixes', () => { - stringifyBatch(nonLiteralPrefixStrings) + test('ordinary f/n/t words outside JSON-literal prefixes', async ({ + bench, + }) => { + await bench('ordinary f/n/t words outside JSON-literal prefixes', () => { + stringifyBatch(nonLiteralPrefixStrings) + }).run() }) - bench('application words with JSON-literal prefixes', () => { - stringifyBatch(jsonLiteralPrefixStrings) + test('application words with JSON-literal prefixes', async ({ bench }) => { + await bench('application words with JSON-literal prefixes', () => { + stringifyBatch(jsonLiteralPrefixStrings) + }).run() }) - bench('application words with complete JSON-literal prefixes', () => { - stringifyBatch(jsonLiteralWordStrings) + test('application words with complete JSON-literal prefixes', async ({ + bench, + }) => { + await bench('application words with complete JSON-literal prefixes', () => { + stringifyBatch(jsonLiteralWordStrings) + }).run() }) - bench('JSON-literal prefixes followed by punctuation', () => { - stringifyBatch(jsonLiteralBoundaryStrings) + test('JSON-literal prefixes followed by punctuation', async ({ bench }) => { + await bench('JSON-literal prefixes followed by punctuation', () => { + stringifyBatch(jsonLiteralBoundaryStrings) + }).run() }) - bench('JSON-compatible string values', () => { - stringifyBatch(jsonStrings) + test('JSON-compatible string values', async ({ bench }) => { + await bench('JSON-compatible string values', () => { + stringifyBatch(jsonStrings) + }).run() }) - bench('mixed application values', () => { - stringifyBatch(mixedValues) + test('mixed application values', async ({ bench }) => { + await bench('mixed application values', () => { + stringifyBatch(mixedValues) + }).run() }) }) diff --git a/packages/router-core/tests/ssr-match-id.bench.ts b/packages/router-core/tests/ssr-match-id.bench.ts index 650a5e33f35..33e0bb59455 100644 --- a/packages/router-core/tests/ssr-match-id.bench.ts +++ b/packages/router-core/tests/ssr-match-id.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' import { dehydrateSsrMatchId } from '../src/ssr/ssr-match-id' const typicalIds = Array.from( @@ -14,20 +14,24 @@ const deepIds = Array.from( let benchmarkSink = 0 describe('SSR match ID codec', () => { - bench('encode 100 typical match IDs', () => { - let size = 0 - for (const id of typicalIds) { - size += dehydrateSsrMatchId(id).length - } - benchmarkSink = size + test('encode 100 typical match IDs', async ({ bench }) => { + await bench('encode 100 typical match IDs', () => { + let size = 0 + for (const id of typicalIds) { + size += dehydrateSsrMatchId(id).length + } + benchmarkSink = size + }).run() }) - bench('encode 100 deep match IDs', () => { - let size = 0 - for (const id of deepIds) { - size += dehydrateSsrMatchId(id).length - } - benchmarkSink = size + test('encode 100 deep match IDs', async ({ bench }) => { + await bench('encode 100 deep match IDs', () => { + let size = 0 + for (const id of deepIds) { + size += dehydrateSsrMatchId(id).length + } + benchmarkSink = size + }).run() }) }) diff --git a/packages/router-ssr-query-core/tests/dehydrate.bench.ts b/packages/router-ssr-query-core/tests/dehydrate.bench.ts index 7e90ab4a71d..7f9dfeb9b6e 100644 --- a/packages/router-ssr-query-core/tests/dehydrate.bench.ts +++ b/packages/router-ssr-query-core/tests/dehydrate.bench.ts @@ -1,7 +1,7 @@ // @vitest-environment node import { QueryClient, dehydrate, dehydrateQuery } from '@tanstack/query-core' -import { afterAll, bench, describe, expect } from 'vitest' +import { afterAll, describe, expect, test } from 'vitest' import type { Query } from '@tanstack/query-core' type DehydratedQuery = ReturnType @@ -49,20 +49,24 @@ describe.each([ afterAll(() => queryClient.clear()) - bench('filter full query cache', () => { - const dehydratedQueries = dehydrate(queryClient, { - shouldDehydrateQuery: (query) => - selectedQueryHashes.has(query.queryHash), - }).queries - benchmarkSink = consumeQueries(dehydratedQueries) + test('filter full query cache', async ({ bench }) => { + await bench('filter full query cache', () => { + const dehydratedQueries = dehydrate(queryClient, { + shouldDehydrateQuery: (query) => + selectedQueryHashes.has(query.queryHash), + }).queries + benchmarkSink = consumeQueries(dehydratedQueries) + }).run() }) - bench('dehydrate direct query references', () => { - const dehydratedQueries = new Array() - for (const query of selectedQueries.values()) { - dehydratedQueries.push(dehydrateQuery(query)) - } - benchmarkSink = consumeQueries(dehydratedQueries) + test('dehydrate direct query references', async ({ bench }) => { + await bench('dehydrate direct query references', () => { + const dehydratedQueries = new Array() + for (const query of selectedQueries.values()) { + dehydratedQueries.push(dehydrateQuery(query)) + } + benchmarkSink = consumeQueries(dehydratedQueries) + }).run() }) }, ) diff --git a/packages/router-ssr-query-core/tests/server-lifecycle.bench.ts b/packages/router-ssr-query-core/tests/server-lifecycle.bench.ts index bf115f61fba..f66e3f234b6 100644 --- a/packages/router-ssr-query-core/tests/server-lifecycle.bench.ts +++ b/packages/router-ssr-query-core/tests/server-lifecycle.bench.ts @@ -1,21 +1,23 @@ // @vitest-environment node import { QueryClient } from '@tanstack/query-core' -import { afterAll, bench, describe } from 'vitest' +import { afterAll, describe, test } from 'vitest' import { setupCoreRouterSsrQueryIntegration } from '../src' let benchmarkSink = 0 describe('server request lifecycle', () => { - bench('create and close a ReadableStream', () => { - let controller!: ReadableStreamDefaultController - const stream = new ReadableStream({ - start(value) { - controller = value - }, - }) - controller.close() - benchmarkSink += stream.locked ? 1 : 0 + test('create and close a ReadableStream', async ({ bench }) => { + await bench('create and close a ReadableStream', () => { + let controller!: ReadableStreamDefaultController + const stream = new ReadableStream({ + start(value) { + controller = value + }, + }) + controller.close() + benchmarkSink += stream.locked ? 1 : 0 + }).run() }) const subscriptionClient = new QueryClient() @@ -23,58 +25,68 @@ describe('server request lifecycle', () => { const listener = () => {} afterAll(() => subscriptionClient.clear()) - bench('subscribe and unsubscribe from QueryCache', () => { - const unsubscribe = queryCache.subscribe(listener) - unsubscribe() + test('subscribe and unsubscribe from QueryCache', async ({ bench }) => { + await bench('subscribe and unsubscribe from QueryCache', () => { + const unsubscribe = queryCache.subscribe(listener) + unsubscribe() + }).run() }) - bench('setup and cleanup before dehydrate', () => { - const queryClient = new QueryClient() - const fixture = createServerRouter() - - setupCoreRouterSsrQueryIntegration({ - router: fixture.router as any, - queryClient, - }) - fixture.attach() - fixture.cleanup() - benchmarkSink += fixture.cleanupListenerCount() + test('setup and cleanup before dehydrate', async ({ bench }) => { + await bench('setup and cleanup before dehydrate', () => { + const queryClient = new QueryClient() + const fixture = createServerRouter() + + setupCoreRouterSsrQueryIntegration({ + router: fixture.router as any, + queryClient, + }) + fixture.attach() + fixture.cleanup() + benchmarkSink += fixture.cleanupListenerCount() + }).run() }) - bench('setup and dehydrate an empty request', async () => { - const queryClient = new QueryClient() - const fixture = createServerRouter() - - setupCoreRouterSsrQueryIntegration({ - router: fixture.router as any, - queryClient, - }) - fixture.attach() - const dehydrated = await fixture.router.options.dehydrate?.() - fixture.finishRender() - fixture.cleanup() - benchmarkSink += dehydrated?.query.stream.locked ? 1 : 0 + test('setup and dehydrate an empty request', async ({ bench }) => { + await bench('setup and dehydrate an empty request', async () => { + const queryClient = new QueryClient() + const fixture = createServerRouter() + + setupCoreRouterSsrQueryIntegration({ + router: fixture.router as any, + queryClient, + }) + fixture.attach() + const dehydrated = await fixture.router.options.dehydrate?.() + fixture.finishRender() + fixture.cleanup() + benchmarkSink += dehydrated?.query.stream.locked ? 1 : 0 + }).run() }) - bench('write 100 loader queries without integration', () => { - const queryClient = new QueryClient() - populateQueryClient(queryClient, 100) - benchmarkSink += queryClient.getQueryCache().getAll().length - queryClient.clear() + test('write 100 loader queries without integration', async ({ bench }) => { + await bench('write 100 loader queries without integration', () => { + const queryClient = new QueryClient() + populateQueryClient(queryClient, 100) + benchmarkSink += queryClient.getQueryCache().getAll().length + queryClient.clear() + }).run() }) - bench('write 100 loader queries before dehydrate', () => { - const queryClient = new QueryClient() - const fixture = createServerRouter() - - setupCoreRouterSsrQueryIntegration({ - router: fixture.router as any, - queryClient, - }) - fixture.attach() - populateQueryClient(queryClient, 100) - benchmarkSink += queryClient.getQueryCache().getAll().length - fixture.cleanup() + test('write 100 loader queries before dehydrate', async ({ bench }) => { + await bench('write 100 loader queries before dehydrate', () => { + const queryClient = new QueryClient() + const fixture = createServerRouter() + + setupCoreRouterSsrQueryIntegration({ + router: fixture.router as any, + queryClient, + }) + fixture.attach() + populateQueryClient(queryClient, 100) + benchmarkSink += queryClient.getQueryCache().getAll().length + fixture.cleanup() + }).run() }) }) diff --git a/packages/solid-router/tests/blocker.test.tsx b/packages/solid-router/tests/blocker.test.tsx index be10c91ac6c..ac27b633e5a 100644 --- a/packages/solid-router/tests/blocker.test.tsx +++ b/packages/solid-router/tests/blocker.test.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { afterEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@solidjs/testing-library' import combinate from 'combinate' diff --git a/packages/solid-router/tests/jest-dom.setup.ts b/packages/solid-router/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/solid-router/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/solid-router/tests/link.bench.tsx b/packages/solid-router/tests/link.bench.tsx index 4f13f3cebb2..30c2585d084 100644 --- a/packages/solid-router/tests/link.bench.tsx +++ b/packages/solid-router/tests/link.bench.tsx @@ -1,5 +1,5 @@ import { render } from '@solidjs/testing-library' -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' import { getRouteSegments } from '@tanstack/router-core' import { Link, @@ -83,22 +83,21 @@ describe.each([ ])('$name', ({ numberOfRoutes, numberOfLinks, matchedParamId }) => { const renderRouter = createRouterRenderer(numberOfRoutes) - bench( - 'hardcoded href', - () => { + test('hardcoded href', async ({ bench }) => { + await bench('hardcoded href', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( {i} )), ) render(() => ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'interpolate path', - () => { + test('interpolate path', async ({ bench }) => { + await bench('interpolate path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'build location', - () => { + test('build location', async ({ bench }) => { + await bench('build location', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to absolute path', - () => { + test('link to absolute path', async ({ bench }) => { + await bench('link to absolute path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to relative path', - () => { + test('link to relative path', async ({ bench }) => { + await bench('link to relative path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => { const to = `./params/$param${Math.min(i, matchedParamId)}` @@ -169,13 +168,13 @@ describe.each([ }), ) render(() => ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to current path', - () => { + test('link to current path', async ({ bench }) => { + await bench('link to current path', () => { const router = renderRouter( Array.from({ length: numberOfLinks }).map((_, i) => ( @@ -184,7 +183,8 @@ describe.each([ )), ) render(() => ) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) }) diff --git a/packages/solid-router/tests/setupTests.tsx b/packages/solid-router/tests/setupTests.tsx index c3d7ec5cf76..6ab5039d6e5 100644 --- a/packages/solid-router/tests/setupTests.tsx +++ b/packages/solid-router/tests/setupTests.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { vi } from 'vitest' // @ts-expect-error diff --git a/packages/solid-router/tests/useBlocker.test.tsx b/packages/solid-router/tests/useBlocker.test.tsx index 4af8cbdaf78..07239caf677 100644 --- a/packages/solid-router/tests/useBlocker.test.tsx +++ b/packages/solid-router/tests/useBlocker.test.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { afterEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@solidjs/testing-library' diff --git a/packages/solid-router/tests/useNavigate.test.tsx b/packages/solid-router/tests/useNavigate.test.tsx index a90b63fd4f1..47c14b284ac 100644 --- a/packages/solid-router/tests/useNavigate.test.tsx +++ b/packages/solid-router/tests/useNavigate.test.tsx @@ -1,5 +1,4 @@ import * as Solid from 'solid-js' -import '@testing-library/jest-dom/vitest' import { afterEach, beforeEach, describe, expect, test } from 'vitest' import { cleanup, diff --git a/packages/solid-router/vite.config.ts b/packages/solid-router/vite.config.ts index ebaf79a9e24..3c9e49ec371 100644 --- a/packages/solid-router/vite.config.ts +++ b/packages/solid-router/vite.config.ts @@ -39,7 +39,7 @@ const config = defineConfig(({ mode }) => { watch: false, environment: 'jsdom', typecheck: { enabled: true }, - setupFiles: ['./tests/setupTests.tsx'], + setupFiles: ['./tests/jest-dom.setup.ts', './tests/setupTests.tsx'], server: { deps: { inline: [/@solidjs/, /@tanstack\/solid-store/], diff --git a/packages/solid-start-client/src/tests/createServerFn.test-d.tsx b/packages/solid-start-client/src/tests/createServerFn.test-d.tsx deleted file mode 100644 index 5311f272440..00000000000 --- a/packages/solid-start-client/src/tests/createServerFn.test-d.tsx +++ /dev/null @@ -1,15 +0,0 @@ -// import { expectTypeOf, test } from 'vitest' -// import { createServerFn } from '@tanstack/start-client-core' - -// test('createServerFn returns RSC', () => { -// const fn = createServerFn().handler(() => ({ -// rscs: [ -//
I'm an RSC
, -//
I'm an RSC
, -// ] as const, -// })) - -// expectTypeOf(fn()).toEqualTypeOf< -// Promise<{ rscs: readonly [ReadableStream, ReadableStream] }> -// >() -// }) diff --git a/packages/solid-start-client/src/tests/jest-dom.setup.ts b/packages/solid-start-client/src/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/solid-start-client/src/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/solid-start-client/src/tests/setupTests.tsx b/packages/solid-start-client/src/tests/setupTests.tsx deleted file mode 100644 index a9d0dd31aa6..00000000000 --- a/packages/solid-start-client/src/tests/setupTests.tsx +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom/vitest' diff --git a/packages/solid-start-client/vite.config.ts b/packages/solid-start-client/vite.config.ts index dbfb60ea039..927e0588bd9 100644 --- a/packages/solid-start-client/vite.config.ts +++ b/packages/solid-start-client/vite.config.ts @@ -11,7 +11,7 @@ const config = defineConfig({ name: packageJson.name, watch: false, environment: 'jsdom', - setupFiles: ['./src/tests/setupTests.tsx'], + setupFiles: ['./src/tests/jest-dom.setup.ts'], }, }) diff --git a/packages/start-client-core/tests/function-middleware.bench.ts b/packages/start-client-core/tests/function-middleware.bench.ts index 38a18d10285..e4dce620a8d 100644 --- a/packages/start-client-core/tests/function-middleware.bench.ts +++ b/packages/start-client-core/tests/function-middleware.bench.ts @@ -1,6 +1,6 @@ // @vitest-environment node -import { afterAll, bench, describe, expect } from 'vitest' +import { afterAll, describe, expect, test } from 'vitest' import { runWithStartContext } from '@tanstack/start-storage-context' import { createMiddleware } from '../src/createMiddleware' import { executeMiddleware } from '../src/createServerFn' @@ -284,17 +284,23 @@ for (const scenario of scenarios) { describe(`function middleware ${scenario.name}`, () => { let workload: ReturnType | undefined - bench('160 calls', () => workload!.batch(), { - ...benchOptions, - // Tinybench awaits setup before warmup and measurement. Only selected cases - // allocate fixtures, and the measured callback contains no assertions. - setup: async () => { - if (!workload) { - workload = createWorkload(scenario) - workloads.push(workload) - } - await workload.verify() - }, + test('160 calls', async ({ bench }) => { + await bench( + '160 calls', + { + // Tinybench awaits beforeAll before warmup and measurement. Only + // selected cases allocate fixtures, and the measured callback + // contains no assertions. + beforeAll: async () => { + if (!workload) { + workload = createWorkload(scenario) + workloads.push(workload) + } + await workload.verify() + }, + }, + () => workload!.batch(), + ).run(benchOptions) }) }) } @@ -303,15 +309,20 @@ for (const env of ['server', 'client'] as const) { describe(`function middleware ${env}-mixed-75-absent-25-supplied-layers-4`, () => { let workload: ReturnType | undefined - bench('160 calls', () => workload!.batch(), { - ...benchOptions, - setup: async () => { - if (!workload) { - workload = createMixedWorkload(env) - workloads.push(workload) - } - await workload.verify() - }, + test('160 calls', async ({ bench }) => { + await bench( + '160 calls', + { + beforeAll: async () => { + if (!workload) { + workload = createMixedWorkload(env) + workloads.push(workload) + } + await workload.verify() + }, + }, + () => workload!.batch(), + ).run(benchOptions) }) }) } diff --git a/packages/start-server-core/tests/response-reconciliation.bench.md b/packages/start-server-core/tests/response-reconciliation.bench.md index 77bf9b7f2b2..a9a6c091728 100644 --- a/packages/start-server-core/tests/response-reconciliation.bench.md +++ b/packages/start-server-core/tests/response-reconciliation.bench.md @@ -35,6 +35,6 @@ unoptimized response-reconciliation branch to measure these newly introduced mechanisms. These focused source benchmarks supplement the production SSR app suite; they do not replace its cross-framework or CodSpeed results. -Use `--outputJson /tmp/response-baseline.json` and a separate candidate output -file to preserve both runs' timing statistics. Vitest's `--compare` option can -display the saved baseline alongside a candidate run. +Use `--reporter=json --outputFile=/tmp/response-baseline.json` and a separate +candidate output file to preserve both runs' timing statistics; each test case +in the JSON report carries its `benchmarks` results. diff --git a/packages/start-server-core/tests/response-reconciliation.bench.ts b/packages/start-server-core/tests/response-reconciliation.bench.ts index bbf7c0e24d1..389b6af8479 100644 --- a/packages/start-server-core/tests/response-reconciliation.bench.ts +++ b/packages/start-server-core/tests/response-reconciliation.bench.ts @@ -1,4 +1,4 @@ -import { afterAll, bench, describe, expect, vi } from 'vitest' +import { afterAll, describe, expect, test, vi } from 'vitest' import { fromCrossJSON } from 'seroval' import { notFound, redirect } from '@tanstack/router-core' import { @@ -330,9 +330,8 @@ afterAll(() => { describe('response reconciliation', () => { for (const scenario of scenarios) { - bench( - scenario.name, - () => + test(scenario.name, async ({ bench }) => { + await bench(scenario.name, () => runRequestLoop(handler, { seed: 0xdecafbad, concurrency: 8, @@ -340,13 +339,16 @@ describe('response reconciliation', () => { buildRequest: (random) => requestFor(scenario.id, Math.floor(random() * 1_000_000)), }), - { warmupIterations: 100, time: 5_000, throws: true }, - ) + ).run({ + warmupIterations: 100, + time: 5_000, + throws: true, + }) + }) } for (const scenario of notFoundScenarios) { - bench( - scenario.name, - () => + test(scenario.name, async ({ bench }) => { + await bench(scenario.name, () => runRequestLoop(handler, { seed: 0xdecafbad, concurrency: 8, @@ -355,13 +357,16 @@ describe('response reconciliation', () => { requestFor(scenario.id, Math.floor(random() * 1_000_000)), validateResponse: validateNotFoundResponse, }), - { warmupIterations: 100, time: 5_000, throws: true }, - ) + ).run({ + warmupIterations: 100, + time: 5_000, + throws: true, + }) + }) } for (const scenario of redirectScenarios) { - bench( - scenario.name, - () => + test(scenario.name, async ({ bench }) => { + await bench(scenario.name, () => runRequestLoop(handler, { seed: 0xdecafbad, concurrency: 8, @@ -376,7 +381,11 @@ describe('response reconciliation', () => { } }, }), - { warmupIterations: 100, time: 5_000, throws: true }, - ) + ).run({ + warmupIterations: 100, + time: 5_000, + throws: true, + }) + }) } }) diff --git a/packages/valibot-adapter/tests/index.test.tsx b/packages/valibot-adapter/tests/index.test.tsx index 327de3093e0..b59c29d0754 100644 --- a/packages/valibot-adapter/tests/index.test.tsx +++ b/packages/valibot-adapter/tests/index.test.tsx @@ -9,7 +9,6 @@ import { import { cleanup, fireEvent, render, screen } from '@testing-library/react' import { afterEach, expect, test, vi } from 'vitest' import { valibotValidator } from '../src' -import '@testing-library/jest-dom/vitest' afterEach(() => { vi.resetAllMocks() diff --git a/packages/valibot-adapter/tests/jest-dom.setup.ts b/packages/valibot-adapter/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/valibot-adapter/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/valibot-adapter/vite.config.ts b/packages/valibot-adapter/vite.config.ts index 8c8c0c519f9..8d553e0a59f 100644 --- a/packages/valibot-adapter/vite.config.ts +++ b/packages/valibot-adapter/vite.config.ts @@ -9,6 +9,7 @@ const config = defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, + setupFiles: ['./tests/jest-dom.setup.ts'], }, }) diff --git a/packages/vue-router/tests/blocker.test.tsx b/packages/vue-router/tests/blocker.test.tsx index 46568d86528..fdd9fa49310 100644 --- a/packages/vue-router/tests/blocker.test.tsx +++ b/packages/vue-router/tests/blocker.test.tsx @@ -1,5 +1,4 @@ import { defineComponent } from 'vue' -import '@testing-library/jest-dom/vitest' import { afterEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@testing-library/vue' import combinate from 'combinate' diff --git a/packages/vue-router/tests/jest-dom.setup.ts b/packages/vue-router/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/vue-router/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/vue-router/tests/link.bench.tsx b/packages/vue-router/tests/link.bench.tsx index bf0c8ac56de..5a5b5f87528 100644 --- a/packages/vue-router/tests/link.bench.tsx +++ b/packages/vue-router/tests/link.bench.tsx @@ -1,7 +1,7 @@ /** @jsxImportSource vue */ import { render } from '@testing-library/vue' -import { bench, describe } from 'vitest' +import { describe, test } from 'vitest' import { getRouteSegments } from '@tanstack/router-core' import * as Vue from 'vue' import { @@ -83,9 +83,8 @@ describe.each([ ])('$name', ({ numberOfRoutes, numberOfLinks, matchedParamId }) => { const renderRouter = createRouterRenderer(numberOfRoutes) - bench( - 'hardcoded href', - () => { + test('hardcoded href', async ({ bench }) => { + await bench('hardcoded href', () => { const links = Vue.h( 'div', null, @@ -96,13 +95,13 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'interpolate path', - () => { + test('interpolate path', async ({ bench }) => { + await bench('interpolate path', () => { const links = Vue.h( 'div', null, @@ -121,13 +120,13 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'build location', - () => { + test('build location', async ({ bench }) => { + await bench('build location', () => { const links = Vue.h( 'div', null, @@ -146,13 +145,13 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to absolute path', - () => { + test('link to absolute path', async ({ bench }) => { + await bench('link to absolute path', () => { const links = Vue.h( 'div', null, @@ -173,13 +172,13 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to relative path', - () => { + test('link to relative path', async ({ bench }) => { + await bench('link to relative path', () => { const links = Vue.h( 'div', null, @@ -202,13 +201,13 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) - bench( - 'link to current path', - () => { + test('link to current path', async ({ bench }) => { + await bench('link to current path', () => { const links = Vue.h( 'div', null, @@ -229,7 +228,8 @@ describe.each([ const router = renderRouter(links) render(Vue.h(RouterProvider, { router })) - }, - { warmupIterations: 1 }, - ) + }).run({ + warmupIterations: 1, + }) + }) }) diff --git a/packages/vue-router/tests/setupTests.tsx b/packages/vue-router/tests/setupTests.tsx index c4c98142de3..01050f2b52a 100644 --- a/packages/vue-router/tests/setupTests.tsx +++ b/packages/vue-router/tests/setupTests.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { vi } from 'vitest' // For @testing-library to work properly with Vue tests diff --git a/packages/vue-router/tests/useBlocker.test.tsx b/packages/vue-router/tests/useBlocker.test.tsx index f22a7a930f6..ca4d8fb3529 100644 --- a/packages/vue-router/tests/useBlocker.test.tsx +++ b/packages/vue-router/tests/useBlocker.test.tsx @@ -1,4 +1,3 @@ -import '@testing-library/jest-dom/vitest' import { afterEach, describe, expect, test, vi } from 'vitest' import { cleanup, fireEvent, render, screen } from '@testing-library/vue' diff --git a/packages/vue-router/tests/useNavigate.test.tsx b/packages/vue-router/tests/useNavigate.test.tsx index 9ab77ac690e..7ffdb64c32d 100644 --- a/packages/vue-router/tests/useNavigate.test.tsx +++ b/packages/vue-router/tests/useNavigate.test.tsx @@ -1,5 +1,4 @@ import * as Vue from 'vue' -import '@testing-library/jest-dom/vitest' import { afterEach, beforeEach, describe, expect, test } from 'vitest' import { cleanup, diff --git a/packages/vue-router/vite.config.ts b/packages/vue-router/vite.config.ts index 88949476fa6..13928e0a1ab 100644 --- a/packages/vue-router/vite.config.ts +++ b/packages/vue-router/vite.config.ts @@ -24,7 +24,7 @@ const config = defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, - setupFiles: ['./tests/setupTests.tsx'], + setupFiles: ['./tests/jest-dom.setup.ts', './tests/setupTests.tsx'], }, }) diff --git a/packages/zod-adapter/tests/index.test.tsx b/packages/zod-adapter/tests/index.test.tsx index d59ec207fc8..36abe0f2393 100644 --- a/packages/zod-adapter/tests/index.test.tsx +++ b/packages/zod-adapter/tests/index.test.tsx @@ -9,7 +9,6 @@ import { RouterProvider, } from '@tanstack/react-router' import { cleanup, fireEvent, render, screen } from '@testing-library/react' -import '@testing-library/jest-dom/vitest' afterEach(() => { vi.resetAllMocks() diff --git a/packages/zod-adapter/tests/jest-dom.setup.ts b/packages/zod-adapter/tests/jest-dom.setup.ts new file mode 100644 index 00000000000..8f7cbf15beb --- /dev/null +++ b/packages/zod-adapter/tests/jest-dom.setup.ts @@ -0,0 +1,18 @@ +import * as jestDomMatchers from '@testing-library/jest-dom/matchers' +import { expect } from 'vitest' +import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers' + +// Workaround for Vitest 5: remove once testing-library/jest-dom#742 is merged +// and released, and go back to `import '@testing-library/jest-dom/vitest'`. +// That entry imports `vitest` from its own install location, which can resolve +// a different Vitest copy than the one running these tests, and its types +// augment Vitest 4's `Assertion` instead of Vitest 5's `Matchers`. +// Keep `jest-dom` in this file name: vite-plugin-solid only skips injecting +// `@testing-library/jest-dom/vitest` when a setup file path contains it. +expect.extend(jestDomMatchers) + +declare module 'vitest' { + // Type parameter names must match Vitest's declaration for the interfaces to merge. + // eslint-disable-next-line @typescript-eslint/naming-convention + interface Matchers extends TestingLibraryMatchers {} +} diff --git a/packages/zod-adapter/vite.config.ts b/packages/zod-adapter/vite.config.ts index 8c8c0c519f9..8d553e0a59f 100644 --- a/packages/zod-adapter/vite.config.ts +++ b/packages/zod-adapter/vite.config.ts @@ -9,6 +9,7 @@ const config = defineConfig({ watch: false, environment: 'jsdom', typecheck: { enabled: true }, + setupFiles: ['./tests/jest-dom.setup.ts'], }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47be5f55103..a7a04e55623 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,8 +25,8 @@ catalogs: specifier: 0.5.2 version: 0.5.2 '@testing-library/jest-dom': - specifier: ^6.6.3 - version: 6.6.3 + specifier: ^7.0.1 + version: 7.0.1 '@testing-library/react': specifier: ^16.2.0 version: 16.3.0 @@ -37,8 +37,8 @@ catalogs: specifier: ^4.1.2 version: 4.2.0 '@vitest/ui': - specifier: ^4.1.4 - version: 4.1.4 + specifier: ^5.0.4 + version: 5.0.4 chokidar: specifier: ^5.0.0 version: 5.0.0 @@ -73,8 +73,8 @@ catalogs: specifier: 2.11.10 version: 2.11.10 vitest: - specifier: ^4.1.4 - version: 4.1.4 + specifier: ^5.0.4 + version: 5.0.4 vue: specifier: ^3.5.25 version: 3.5.25 @@ -309,8 +309,8 @@ importers: version: 3.5.25(@typescript/typescript6@6.0.2) devDependencies: '@codspeed/vitest-plugin': - specifier: ^5.7.1 - version: 5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@2.9.0)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@4.1.4) + specifier: ^6.0.1 + version: 6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@6.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@5.0.4) '@platformatic/flame': specifier: ^1.6.0 version: 1.6.0 @@ -355,7 +355,7 @@ importers: version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) benchmarks/memory/client: dependencies: @@ -385,8 +385,8 @@ importers: version: 3.5.25(@typescript/typescript6@6.0.2) devDependencies: '@codspeed/vitest-plugin': - specifier: ^5.7.1 - version: 5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@2.9.0)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@4.1.4) + specifier: ^6.0.1 + version: 6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@6.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@5.0.4) '@datadog/pprof': specifier: ^5.13.2 version: 5.13.2 @@ -431,7 +431,7 @@ importers: version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) benchmarks/memory/server: dependencies: @@ -467,8 +467,8 @@ importers: version: 3.5.25(@typescript/typescript6@6.0.2) devDependencies: '@codspeed/vitest-plugin': - specifier: ^5.7.1 - version: 5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@2.9.0)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@4.1.4) + specifier: ^6.0.1 + version: 6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@6.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@5.0.4) '@datadog/pprof': specifier: ^5.13.2 version: 5.13.2 @@ -501,7 +501,7 @@ importers: version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) benchmarks/ssr: dependencies: @@ -537,8 +537,8 @@ importers: version: 3.5.25(@typescript/typescript6@6.0.2) devDependencies: '@codspeed/vitest-plugin': - specifier: ^5.7.1 - version: 5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@2.9.0)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@4.1.4) + specifier: ^6.0.1 + version: 6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@6.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@5.0.4) '@types/react': specifier: ^19.2.8 version: 19.2.9 @@ -568,7 +568,7 @@ importers: version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) e2e/e2e-utils: devDependencies: @@ -589,7 +589,7 @@ importers: version: 4.2.3(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(rollup@4.63.1)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) e2e/eslint-plugin-start: devDependencies: @@ -622,7 +622,7 @@ importers: version: 5.9.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) e2e/react-router/basepath-file-based: dependencies: @@ -9998,8 +9998,8 @@ importers: version: 3.25.76 devDependencies: '@testing-library/jest-dom': - specifier: ^6.6.3 - version: 6.6.3 + specifier: ^7.0.1 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/react': specifier: ^16.2.0 version: 16.2.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -10025,8 +10025,8 @@ importers: specifier: ^8.3.4 version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: - specifier: ^4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + specifier: ^5.0.4 + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) examples/react/start-bare: dependencies: @@ -10550,8 +10550,8 @@ importers: specifier: ^8.3.4 version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: - specifier: ^4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + specifier: ^5.0.4 + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) web-vitals: specifier: ^5.1.0 version: 5.1.0 @@ -12819,8 +12819,8 @@ importers: specifier: ^0.8.10 version: 0.8.10(solid-js@1.9.12) '@testing-library/jest-dom': - specifier: ^6.6.3 - version: 6.6.3 + specifier: ^7.0.1 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@typescript/native': specifier: npm:typescript@^7.0.2 version: typescript@7.0.2 @@ -12835,10 +12835,10 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vite-plugin-solid: specifier: ^2.11.11 - version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 2.11.11(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: - specifier: ^4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + specifier: ^5.0.4 + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) examples/solid/start-basic: dependencies: @@ -13278,8 +13278,8 @@ importers: specifier: ^2.11.11 version: 2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: - specifier: ^4.1.4 - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + specifier: ^5.0.4 + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) web-vitals: specifier: ^5.1.0 version: 5.1.0 @@ -13889,7 +13889,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/react': specifier: 'catalog:' version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -13922,7 +13922,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/eslint-plugin-router: dependencies: @@ -13956,7 +13956,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/eslint-plugin-start: dependencies: @@ -13990,7 +13990,7 @@ importers: version: 5.9.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/history: devDependencies: @@ -14014,7 +14014,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-router: dependencies: @@ -14045,7 +14045,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/react': specifier: 'catalog:' version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -14087,7 +14087,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) zod: specifier: 'catalog:' version: 4.5.4 @@ -14148,7 +14148,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-router-ssr-query: dependencies: @@ -14206,7 +14206,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-start: dependencies: @@ -14282,7 +14282,7 @@ importers: version: 6.1.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-start-client: dependencies: @@ -14343,7 +14343,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-start-rsc: dependencies: @@ -14422,7 +14422,7 @@ importers: version: 6.1.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/react-start-server: dependencies: @@ -14483,7 +14483,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-cli: dependencies: @@ -14517,7 +14517,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-core: dependencies: @@ -14563,7 +14563,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-devtools: dependencies: @@ -14615,7 +14615,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-devtools-core: dependencies: @@ -14640,7 +14640,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) jsdom: specifier: 'catalog:' version: 25.0.1(supports-color@10.2.2) @@ -14658,10 +14658,10 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vite-plugin-solid: specifier: 'catalog:' - version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 2.11.10(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-generator: dependencies: @@ -14719,7 +14719,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-plugin: dependencies: @@ -14804,7 +14804,7 @@ importers: version: 6.1.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) webpack: specifier: ^5.104.1 version: 5.110.3(@swc/core@1.15.33(@swc/helpers@0.5.23))(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.29)(sharp@0.35.4(@types/node@25.0.9))(svgo@4.0.0)(webpack-cli@5.1.4) @@ -14837,7 +14837,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-utils: dependencies: @@ -14889,7 +14889,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/router-vite-plugin: dependencies: @@ -14914,7 +14914,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/solid-router: dependencies: @@ -14945,7 +14945,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@types/node': specifier: 25.0.9 version: 25.0.9 @@ -14969,10 +14969,10 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vite-plugin-solid: specifier: 'catalog:' - version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 2.11.10(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) zod: specifier: 'catalog:' version: 4.5.4 @@ -15015,7 +15015,7 @@ importers: version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/solid-router-ssr-query: dependencies: @@ -15061,7 +15061,7 @@ importers: version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/solid-start: dependencies: @@ -15125,7 +15125,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/solid-start-client: dependencies: @@ -15150,7 +15150,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) jsdom: specifier: 'catalog:' version: 25.0.1(supports-color@10.2.2) @@ -15165,10 +15165,10 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vite-plugin-solid: specifier: 'catalog:' - version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 2.11.10(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/solid-start-server: dependencies: @@ -15214,7 +15214,7 @@ importers: version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-client-core: dependencies: @@ -15254,7 +15254,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-fn-stubs: devDependencies: @@ -15275,7 +15275,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-plugin-core: dependencies: @@ -15378,7 +15378,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-server-core: dependencies: @@ -15433,7 +15433,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-static-server-functions: dependencies: @@ -15473,7 +15473,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/start-storage-context: dependencies: @@ -15504,7 +15504,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/valibot-adapter: devDependencies: @@ -15519,7 +15519,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/react': specifier: 'catalog:' version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -15552,7 +15552,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/virtual-file-routes: devDependencies: @@ -15576,7 +15576,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) packages/vue-router: dependencies: @@ -15604,7 +15604,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/vue': specifier: ^8.1.0 version: 8.1.0(@vue/compiler-sfc@3.5.25)(vue@3.5.25(@typescript/typescript6@6.0.2)) @@ -15616,7 +15616,7 @@ importers: version: 4.2.0(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vue@3.5.25(@typescript/typescript6@6.0.2)) '@vitest/ui': specifier: 'catalog:' - version: 4.1.4(vitest@4.1.4) + version: 5.0.4(vitest@5.0.4) combinate: specifier: 'catalog:' version: 1.1.11 @@ -15634,7 +15634,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15677,7 +15677,7 @@ importers: version: 6.1.2 vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15717,7 +15717,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15778,7 +15778,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15818,7 +15818,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15864,7 +15864,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.25(@typescript/typescript6@6.0.2) @@ -15882,7 +15882,7 @@ importers: version: 0.5.2(@types/node@25.0.9)(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/jest-dom': specifier: 'catalog:' - version: 6.6.3 + version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) '@testing-library/react': specifier: 'catalog:' version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -15912,7 +15912,7 @@ importers: version: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + version: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) zod: specifier: ^3.24.2 version: 3.25.57 @@ -16555,15 +16555,15 @@ packages: cpu: [x64] os: [win32] - '@codspeed/core@5.7.1': - resolution: {integrity: sha512-7mrFkqaY14rXu3XHv3o7bK3btLK0LFRxfeK3bQC8dLduI/Ty9eq8Hv8rx04FAY/onQbRTx3rUUQg5xprYHpATQ==} + '@codspeed/core@6.0.1': + resolution: {integrity: sha512-p6yrZIoz/Bf5vW/QfGhiPOCKccGPES3jQ8NA+03qGcUYR3/U0tZ9h6ZkxVg2zLN10YaHrABEY4GtmTEEE5xF5Q==} - '@codspeed/vitest-plugin@5.7.1': - resolution: {integrity: sha512-yKNqaYVxZZPJYkhVHpz30Oem4TUgcI+/IRDD9YHvcAgi0P42CL6TB/+qYjuFOWghFzTPrm3TUbNFoBsevSTbUA==} + '@codspeed/vitest-plugin@6.0.1': + resolution: {integrity: sha512-QEIkp3UtXwbT3eB7NZ49+Jz5xpzHopSFMscASF4lpbjTgbOt/Xax6vIPShDSPKB5JErexyJBze7AwCOPgkoNqQ==} peerDependencies: tinybench: '>=2.9.0' vite: ^8.3.4 - vitest: ^3.2 || ^4 + vitest: ^3.2 || ^4 || ^5 '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -21857,6 +21857,16 @@ packages: resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/jest-dom@7.0.1': + resolution: {integrity: sha512-oMDTC3oA+6CXSO2JZnvOI7CA6oVub6kij5ggk9ohwye5slmkwxYDXcPOVxgMw/RQlticjtO0C1RZkR97HgrWMw==} + engines: {node: '>=22', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@testing-library/dom': '>=10 <11' + vitest: '>= 0.32' + peerDependenciesMeta: + vitest: + optional: true + '@testing-library/react@16.2.0': resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} engines: {node: '>=18'} @@ -22586,9 +22596,23 @@ packages: vite: optional: true + '@vitest/mocker@5.0.4': + resolution: {integrity: sha512-tqAlrYWce4iUxhr3ncNohejtCTOcHeE8XWrSNZY3OhPoDn01yeGv+gnaBy64ATp7o6pb03eIbBAjzmibpc9vIQ==} + peerDependencies: + msw: ^2.4.9 || ^3.0.0 + vite: ^8.3.4 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@4.1.4': resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} + '@vitest/pretty-format@5.0.4': + resolution: {integrity: sha512-kh/bp0oLr6w18kt4MFn5/zS+Hpc5k3bsf6S2m2Qksj7sKHrnc7Tu90UVYyiXnRvkYruN6kSCHQ3RR+SBE6FinA==} + '@vitest/runner@4.1.4': resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} @@ -22598,14 +22622,25 @@ packages: '@vitest/spy@4.1.4': resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} + '@vitest/spy@5.0.4': + resolution: {integrity: sha512-MZKk/gSkm2q+ICobMxCpH1mA+cCAWm8WV7UhxlqGjq/sJ3AGc1BqFOs5CRVXxH78wQtme9q/NAAgBquj4AcyMw==} + '@vitest/ui@4.1.4': resolution: {integrity: sha512-EgFR7nlj5iTDYZYCvavjFokNYwr3c3ry0sFiCg+N7B233Nwp+NNx7eoF/XvMWDCKY71xXAG3kFkt97ZHBJVL8A==} peerDependencies: vitest: 4.1.4 + '@vitest/ui@5.0.4': + resolution: {integrity: sha512-L40ToOGwFgeZ+JVPMKHb7T0b671mqcmCpMUh9P68xq9YZ+TXM72rkDf9ljuv02e5Y1zj8ww0CnWIUnqs3FEWKQ==} + peerDependencies: + vitest: 5.0.4 + '@vitest/utils@4.1.4': resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} + '@vitest/utils@5.0.4': + resolution: {integrity: sha512-hgpnyMuMqCz2PARmk3v62FxUr8jHIkY13ygvUeh8s+dmQxfnvkB/sgtoZFzG4lMitnEdnrg/lCvDbtVzuAsGWQ==} + '@volar/language-core@2.4.26': resolution: {integrity: sha512-hH0SMitMxnB43OZpyF1IFPS9bgb2I3bpCh76m2WEK7BE0A0EzpYsRp0CCH2xNKshr7kacU5TQBLYn4zj7CG60A==} @@ -23395,8 +23430,8 @@ packages: caniuse-lite@1.0.30001760: resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} - chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + chai@6.3.0: + resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} engines: {node: '>=18'} chalk@3.0.0: @@ -24318,11 +24353,8 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.3.1: - resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} - - es-module-lexer@3.0.2: - resolution: {integrity: sha512-BuIB67FngDSyQ/dpQNOZybwdEBDUGJQvOqwWr4ha/ufYiqzuEwPkKO2zLhRAgay28tStRIHUeWmszZAJo3GCOg==} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} es-module-lexer@3.0.3: resolution: {integrity: sha512-yWGe1O/j+almnV4hOYrmZo8u58JdnmXEMneRQAYkWtqSiT86yoMIEKF4rpqEDj52tbYl3xceBD3DQIBwcsC9Pw==} @@ -24655,8 +24687,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} express@4.22.2: @@ -24806,10 +24838,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - find-up@7.0.0: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} engines: {node: '>=18'} @@ -24828,6 +24856,9 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -26863,10 +26894,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} - picomatch@4.0.7: resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} @@ -28044,12 +28071,12 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - std-env@4.1.0: - resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} - std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + std-env@4.3.0: + resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -28292,6 +28319,10 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinybench@6.2.2: + resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==} + engines: {node: '>=20.0.0'} + tinyclip@0.1.15: resolution: {integrity: sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==} engines: {node: ^16.14.0 || >= 17.3.0} @@ -28299,24 +28330,20 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + tinyexec@1.3.1: + resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} engines: {node: '>=18'} tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} - tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + tinyrainbow@3.2.0: + resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==} engines: {node: '>=14.0.0'} tldts-core@6.1.76: @@ -28968,6 +28995,47 @@ packages: jsdom: optional: true + vitest@5.0.4: + resolution: {integrity: sha512-z0WxZRV2Sg48wF0FSgMq3TFG8JS38/Qr96vZVZdX6+Em9raQTvnXQvdTFJe2m3rfyJnEHeHQ/snceIdi8D1pVg==} + engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': 25.0.9 + '@vitest/browser-playwright': 5.0.4 + '@vitest/browser-preview': 5.0.4 + '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0 + '@vitest/coverage-istanbul': 5.0.4 + '@vitest/coverage-v8': 5.0.4 + '@vitest/ui': 5.0.4 + happy-dom: '*' + jsdom: '*' + vite: ^8.3.4 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} @@ -29203,6 +29271,11 @@ packages: engines: {node: '>=8'} hasBin: true + why-is-node-running@3.2.1: + resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==} + engines: {node: '>=20.11'} + hasBin: true + wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} @@ -30478,10 +30551,9 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260317.1': optional: true - '@codspeed/core@5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)': + '@codspeed/core@6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)': dependencies: axios: 1.18.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2) - find-up: 6.3.0 form-data: 4.0.6 node-gyp-build: 4.8.4 stack-trace: 1.0.0-pre2 @@ -30489,12 +30561,12 @@ snapshots: - debug - supports-color - '@codspeed/vitest-plugin@5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@2.9.0)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@4.1.4)': + '@codspeed/vitest-plugin@6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2)(tinybench@6.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))(vitest@5.0.4)': dependencies: - '@codspeed/core': 5.7.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2) - tinybench: 2.9.0 + '@codspeed/core': 6.0.1(debug@4.4.3(supports-color@7.2.0))(supports-color@10.2.2) + tinybench: 6.2.2 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + vitest: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) transitivePeerDependencies: - debug - supports-color @@ -32224,7 +32296,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: @@ -35700,6 +35772,19 @@ snapshots: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 + optional: true + + '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4)': + dependencies: + '@adobe/css-tools': 4.4.1 + '@testing-library/dom': 10.4.1 + aria-query: 5.3.2 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + picocolors: 1.1.1 + redent: 3.0.0 + optionalDependencies: + vitest: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@testing-library/react@16.2.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.9))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -36797,53 +36882,74 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 4.1.4 '@vitest/utils': 4.1.4 - chai: 6.2.2 - tinyrainbow: 3.1.0 + chai: 6.3.0 + tinyrainbow: 3.2.0 + optional: true - '@vitest/mocker@4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': + '@vitest/mocker@4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 + optionalDependencies: + msw: 2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2) + vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) + optional: true + + '@vitest/mocker@5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.4 + estree-walker: 3.0.3 + magic-string: 1.4.3 optionalDependencies: msw: 2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2) vite: 8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - '@vitest/mocker@4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': + '@vitest/mocker@5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.4 + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.4 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 1.4.3 optionalDependencies: msw: 2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2) vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - '@vitest/mocker@4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': + '@vitest/mocker@5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.4 + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.4 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 1.4.3 optionalDependencies: msw: 2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2) vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - '@vitest/mocker@4.1.4(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': + '@vitest/mocker@5.0.4(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.4 + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.4 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 1.4.3 optionalDependencies: msw: 2.15.0(@types/node@25.0.9)(typescript@5.9.2) vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) '@vitest/pretty-format@4.1.4': dependencies: - tinyrainbow: 3.1.0 + tinyrainbow: 3.2.0 + optional: true + + '@vitest/pretty-format@5.0.4': + dependencies: + tinyrainbow: 3.2.0 '@vitest/runner@4.1.4': dependencies: '@vitest/utils': 4.1.4 pathe: 2.0.3 + optional: true '@vitest/snapshot@4.1.4': dependencies: @@ -36851,25 +36957,47 @@ snapshots: '@vitest/utils': 4.1.4 magic-string: 0.30.21 pathe: 2.0.3 + optional: true - '@vitest/spy@4.1.4': {} + '@vitest/spy@4.1.4': + optional: true + + '@vitest/spy@5.0.4': {} '@vitest/ui@4.1.4(vitest@4.1.4)': dependencies: '@vitest/utils': 4.1.4 fflate: 0.8.3 - flatted: 3.4.2 + flatted: 3.4.4 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.17 - tinyrainbow: 3.1.0 + tinyrainbow: 3.2.0 vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + optional: true + + '@vitest/ui@5.0.4(vitest@5.0.4)': + dependencies: + '@vitest/utils': 5.0.4 + fflate: 0.8.3 + flatted: 3.4.4 + pathe: 2.0.3 + sirv: 3.0.2 + tinyrainbow: 3.2.0 + vitest: 5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@vitest/utils@4.1.4': dependencies: '@vitest/pretty-format': 4.1.4 convert-source-map: 2.0.0 - tinyrainbow: 3.1.0 + tinyrainbow: 3.2.0 + optional: true + + '@vitest/utils@5.0.4': + dependencies: + '@vitest/pretty-format': 5.0.4 + convert-source-map: 2.0.0 + tinyrainbow: 3.2.0 '@volar/language-core@2.4.26': dependencies: @@ -37926,12 +38054,13 @@ snapshots: caniuse-lite@1.0.30001760: {} - chai@6.2.2: {} + chai@6.3.0: {} chalk@3.0.0: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + optional: true chalk@4.1.2: dependencies: @@ -38814,9 +38943,7 @@ snapshots: es-module-lexer@1.7.0: {} - es-module-lexer@2.3.1: {} - - es-module-lexer@3.0.2: {} + es-module-lexer@2.3.2: {} es-module-lexer@3.0.3: {} @@ -39490,7 +39617,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expect-type@1.3.0: {} + expect-type@1.4.0: {} express@4.22.2(supports-color@10.2.2): dependencies: @@ -39726,11 +39853,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - find-up@7.0.0: dependencies: locate-path: 7.2.0 @@ -39779,6 +39901,8 @@ snapshots: flatted@3.4.2: {} + flatted@3.4.4: {} + fn.name@1.1.0: {} follow-redirects@1.16.0(debug@4.4.3(supports-color@10.2.2)): @@ -40287,7 +40411,7 @@ snapshots: import-in-the-middle@3.5.1: dependencies: cjs-module-lexer: 2.2.1 - es-module-lexer: 3.0.2 + es-module-lexer: 3.0.3 module-details-from-path: 1.0.4 import-lazy@4.0.0: {} @@ -41053,7 +41177,7 @@ snapshots: magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 magic-string@1.4.3: dependencies: @@ -41711,7 +41835,8 @@ snapshots: obuf@1.1.2: {} - obug@2.1.1: {} + obug@2.1.1: + optional: true obug@3.0.0: {} @@ -41974,8 +42099,6 @@ snapshots: picomatch@4.0.3: {} - picomatch@4.0.4: {} - picomatch@4.0.7: {} picoquery@2.5.0: {} @@ -43152,7 +43275,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - siginfo@2.0.0: {} + siginfo@2.0.0: + optional: true signal-exit@3.0.7: {} @@ -43304,7 +43428,8 @@ snapshots: stack-trace@1.0.0-pre2: {} - stackback@0.0.2: {} + stackback@0.0.2: + optional: true standard-as-callback@2.1.0: optional: true @@ -43329,10 +43454,10 @@ snapshots: std-env@3.9.0: {} - std-env@4.1.0: {} - std-env@4.2.0: {} + std-env@4.3.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -43586,30 +43711,28 @@ snapshots: timestring@6.0.0: {} - tinybench@2.9.0: {} + tinybench@2.9.0: + optional: true + + tinybench@6.2.2: {} tinyclip@0.1.15: {} tinyexec@0.3.2: {} - tinyexec@1.0.2: {} + tinyexec@1.3.1: {} tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinyglobby@0.2.16: - dependencies: - fdir: 6.5.0(picomatch@4.0.7) - picomatch: 4.0.7 - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 - tinyrainbow@3.1.0: {} + tinyrainbow@3.2.0: {} tldts-core@6.1.76: {} @@ -44139,6 +44262,21 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-solid@2.11.10(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.10(@babel/core@7.29.7(supports-color@10.2.2))(solid-js@1.9.12) + merge-anything: 5.1.7 + solid-js: 1.9.12 + solid-refresh: 0.6.3(solid-js@1.9.12)(supports-color@10.2.2) + vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + optionalDependencies: + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) + transitivePeerDependencies: + - supports-color + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.6.3)(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) @@ -44169,6 +44307,21 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-solid@2.11.11(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4))(solid-js@1.9.12)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.10(@babel/core@7.29.7(supports-color@10.2.2))(solid-js@1.9.12) + merge-anything: 5.1.7 + solid-js: 1.9.12 + solid-refresh: 0.6.3(solid-js@1.9.12)(supports-color@10.2.2) + vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) + vitefu: 1.1.1(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + optionalDependencies: + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.4) + transitivePeerDependencies: + - supports-color + vite-tsconfig-paths@6.1.1(@typescript/typescript6@6.0.2)(supports-color@10.2.2)(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: debug: 4.4.3(supports-color@10.2.2) @@ -44275,182 +44428,177 @@ snapshots: optionalDependencies: vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.4 '@vitest/runner': 4.1.4 '@vitest/snapshot': 4.1.4 '@vitest/spy': 4.1.4 '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 + picomatch: 4.0.7 + std-env: 4.3.0 tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 - vite: 8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + tinyrainbow: 3.2.0 + vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 '@vitest/ui': 4.1.4(vitest@4.1.4) + jsdom: 29.1.1(@noble/hashes@2.0.1) + transitivePeerDependencies: + - msw + optional: true + + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + dependencies: + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + vite: 8.3.4(@types/node@25.0.9)(esbuild@0.27.4)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) + why-is-node-running: 3.2.1 + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@types/node': 25.0.9 + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 25.0.1(supports-color@10.2.2) transitivePeerDependencies: - msw - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - why-is-node-running: 2.3.0 + why-is-node-running: 3.2.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 25.0.1(supports-color@10.2.2) transitivePeerDependencies: - msw - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@25.0.1(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - why-is-node-running: 2.3.0 + why-is-node-running: 3.2.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 25.0.1(supports-color@10.2.2) transitivePeerDependencies: - msw - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@27.0.0(supports-color@10.2.2))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - why-is-node-running: 2.3.0 + why-is-node-running: 3.2.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 27.0.0(supports-color@10.2.2) transitivePeerDependencies: - msw - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(@typescript/typescript6@6.0.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.97.2)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - why-is-node-running: 2.3.0 + why-is-node-running: 3.2.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw - vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@4.1.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): + vitest@5.0.4(@opentelemetry/api@1.9.1)(@types/node@25.0.9)(@vitest/ui@5.0.4)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.3.1 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 + '@types/chai': 5.2.2 + '@vitest/mocker': 5.0.4(msw@2.15.0(@types/node@25.0.9)(typescript@5.9.2))(vite@8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 vite: 8.3.4(@types/node@25.0.9)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.105.1)(sass@1.105.1)(terser@5.51.2)(tsx@4.20.3)(yaml@2.9.0) - why-is-node-running: 2.3.0 + why-is-node-running: 3.2.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.0.9 - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/ui': 5.0.4(vitest@5.0.4) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw @@ -44767,7 +44915,7 @@ snapshots: browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.24.5 - es-module-lexer: 2.3.1 + es-module-lexer: 2.3.2 events: 3.3.0 graceful-fs: 4.2.11 mime-db: 1.54.0 @@ -44939,6 +45087,9 @@ snapshots: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + optional: true + + why-is-node-running@3.2.1: {} wildcard@2.0.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dd055cb001c..8f33a49d509 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -38,11 +38,11 @@ catalog: '@eslint-react/eslint-plugin': ^1.26.2 '@rsbuild/core': ^2.2.5 '@tanstack/vite-config': 0.5.2 - '@testing-library/jest-dom': ^6.6.3 + '@testing-library/jest-dom': ^7.0.1 '@testing-library/react': ^16.2.0 '@vitejs/plugin-react': ^6.0.1 '@vitejs/plugin-vue-jsx': ^4.1.2 - '@vitest/ui': ^4.1.4 + '@vitest/ui': ^5.0.4 react: ^19.2.3 react-dom: ^19.2.3 '@types/react': ^19.2.8 @@ -61,7 +61,7 @@ catalog: tinyglobby: ^0.2.17 vite: ^8.3.4 vite-plugin-solid: 2.11.10 - vitest: ^4.1.4 + vitest: ^5.0.4 vue: ^3.5.25 zod: ^4.5.4 '@types/node': 25.0.9 From 7eead0c5e5f7e44430ced355743546c1de56f4f9 Mon Sep 17 00:00:00 2001 From: Manuel Schiller <6340397+schiller-manuel@users.noreply.github.com> Date: Thu, 15 Oct 2026 23:33:41 +0200 Subject: [PATCH 2/2] test(benchmarks): drop the 10 minute benchmark test timeout Vitest 5 already gives benchmark tests at least a 60 s timeout. In this PR's CodSpeed CI run, the slowest of 194 instrumented benchmark tests took 28.5 s (p95 17.3 s, median 7.7 s), and plain Tinybench runs stay around 10-15 s, so the default floor covers every suite and still catches a hung benchmark. Co-Authored-By: Claude Opus 5.5 --- benchmarks/client-nav/link-performance/config.ts | 2 -- benchmarks/client-nav/react/vite.config.ts | 3 +-- .../scenarios/async-pipeline/react/vite.config.ts | 6 +----- .../scenarios/async-pipeline/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/async-pipeline/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/control-flow/react/vite.config.ts | 6 +----- .../client-nav/scenarios/control-flow/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/control-flow/vue/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/head/react/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/head/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/head/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/history/react/vite.config.ts | 6 +----- .../client-nav/scenarios/history/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/history/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/hydration/react/vite.config.ts | 6 +----- .../client-nav/scenarios/hydration/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/link-churn/react/vite.config.ts | 6 +----- .../client-nav/scenarios/link-churn/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/link-churn/vue/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/links/react/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/links/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/links/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/loaders/react/vite.config.ts | 6 +----- .../client-nav/scenarios/loaders/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/mount/react/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/mount/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/mount/vue/vite.config.ts | 6 +----- .../scenarios/nested-params/react/vite.config.ts | 6 +----- .../scenarios/nested-params/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/nested-params/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/preload/react/vite.config.ts | 6 +----- .../client-nav/scenarios/preload/solid/vite.config.ts | 6 +----- benchmarks/client-nav/scenarios/preload/vue/vite.config.ts | 6 +----- .../client-nav/scenarios/rewrites/react/vite.config.ts | 6 +----- .../client-nav/scenarios/rewrites/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/rewrites/vue/vite.config.ts | 6 +----- .../scenarios/route-tree-scale/react/vite.config.ts | 6 +----- .../scenarios/route-tree-scale/solid/vite.config.ts | 6 +----- .../scenarios/route-tree-scale/vue/vite.config.ts | 6 +----- .../scenarios/search-params/react/vite.config.ts | 6 +----- .../scenarios/search-params/solid/vite.config.ts | 6 +----- .../client-nav/scenarios/search-params/vue/vite.config.ts | 6 +----- benchmarks/client-nav/solid/vite.config.ts | 3 +-- benchmarks/client-nav/vue/vite.config.ts | 3 +-- benchmarks/cpu-simulation.ts | 7 ------- benchmarks/memory/runtime.ts | 2 -- benchmarks/ssr/react/vite.config.ts | 3 +-- benchmarks/ssr/scenarios/assets/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/assets/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/assets/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/before-load/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/before-load/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/before-load/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/control-flow/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts | 6 +----- .../ssr/scenarios/global-middleware/react/vite.config.ts | 6 +----- .../ssr/scenarios/global-middleware/solid/vite.config.ts | 6 +----- .../ssr/scenarios/global-middleware/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/head/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/head/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/head/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/loaders/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/loaders/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/loaders/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/rewrites/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts | 6 +----- .../ssr/scenarios/selective-ssr/react/vite.config.ts | 6 +----- .../ssr/scenarios/selective-ssr/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts | 6 +----- .../ssr/scenarios/serialization/react/vite.config.ts | 6 +----- .../ssr/scenarios/serialization/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/serialization/vue/vite.config.ts | 6 +----- .../ssr/scenarios/server-fn-transport/react/vite.config.ts | 6 +----- .../ssr/scenarios/server-fn-transport/solid/vite.config.ts | 6 +----- .../ssr/scenarios/server-fn-transport/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/server-fns/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts | 6 +----- .../server-routes-middleware/react/vite.config.ts | 6 +----- .../server-routes-middleware/solid/vite.config.ts | 6 +----- .../scenarios/server-routes-middleware/vue/vite.config.ts | 6 +----- .../ssr/scenarios/server-routes/react/vite.config.ts | 6 +----- .../ssr/scenarios/server-routes/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/streaming/react/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/streaming/solid/vite.config.ts | 6 +----- benchmarks/ssr/scenarios/streaming/vue/vite.config.ts | 6 +----- benchmarks/ssr/solid/vite.config.ts | 3 +-- benchmarks/ssr/vue/vite.config.ts | 3 +-- 92 files changed, 89 insertions(+), 438 deletions(-) diff --git a/benchmarks/client-nav/link-performance/config.ts b/benchmarks/client-nav/link-performance/config.ts index 33bbd6954c9..416b0270575 100644 --- a/benchmarks/client-nav/link-performance/config.ts +++ b/benchmarks/client-nav/link-performance/config.ts @@ -1,7 +1,6 @@ import { fileURLToPath } from 'node:url' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' -import { benchTestTimeout } from '../../cpu-simulation' import type { UserConfig } from 'vite' const root = fileURLToPath(new URL('.', import.meta.url)) @@ -54,7 +53,6 @@ export function createLinkPerformanceConfig( test: { name: `react-link-performance-${target}`, watch: false, - testTimeout: benchTestTimeout, environment: server ? 'node' : 'jsdom', setupFiles: server ? [] : ['../vitest.setup.ts'], server: { diff --git a/benchmarks/client-nav/react/vite.config.ts b/benchmarks/client-nav/react/vite.config.ts index b9f8e5aeff7..7df3f80e718 100644 --- a/benchmarks/client-nav/react/vite.config.ts +++ b/benchmarks/client-nav/react/vite.config.ts @@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -30,7 +30,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts index 6fb15c70980..e36a5244b12 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts index 0a19bb94be5..214da8042ee 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts b/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts index 33bf8e01044..ce4fa7318ae 100644 --- a/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/async-pipeline/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav async-pipeline (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts index 26b8f4adc88..1eefca0fc3b 100644 --- a/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts index 14a9b5abacd..f4fa916154d 100644 --- a/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts b/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts index dc5c68a3293..3c2750d2a6b 100644 --- a/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/control-flow/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav control-flow (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/react/vite.config.ts b/benchmarks/client-nav/scenarios/head/react/vite.config.ts index 29d780549cb..7c8d6d4c150 100644 --- a/benchmarks/client-nav/scenarios/head/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/solid/vite.config.ts b/benchmarks/client-nav/scenarios/head/solid/vite.config.ts index 8bf0a1a3b77..986b2de2b0d 100644 --- a/benchmarks/client-nav/scenarios/head/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/head/vue/vite.config.ts b/benchmarks/client-nav/scenarios/head/vue/vite.config.ts index ce04382faff..bb1126d85f8 100644 --- a/benchmarks/client-nav/scenarios/head/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/head/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav head (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/react/vite.config.ts b/benchmarks/client-nav/scenarios/history/react/vite.config.ts index 2cc12a78d54..bdbde9c668d 100644 --- a/benchmarks/client-nav/scenarios/history/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/solid/vite.config.ts b/benchmarks/client-nav/scenarios/history/solid/vite.config.ts index 9779b445c57..4da589ff0e7 100644 --- a/benchmarks/client-nav/scenarios/history/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/history/vue/vite.config.ts b/benchmarks/client-nav/scenarios/history/vue/vite.config.ts index b4492bee9b3..c5f1ca98070 100644 --- a/benchmarks/client-nav/scenarios/history/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/history/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav history (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts b/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts index 4833147aa22..62ab87115bf 100644 --- a/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/hydration/react/vite.config.ts @@ -2,10 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' export default defineConfig({ root: fileURLToPath(new URL('.', import.meta.url)), @@ -29,7 +26,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav hydration (react)', watch: false, environment: 'node', diff --git a/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts b/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts index 520b52c0934..16e5ff95aa9 100644 --- a/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/hydration/solid/vite.config.ts @@ -2,10 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' export default defineConfig({ root: fileURLToPath(new URL('.', import.meta.url)), @@ -31,7 +28,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav hydration (solid)', watch: false, environment: 'node', diff --git a/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts index 842dfcdd9f4..344974ebf90 100644 --- a/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts index 1c92f8b14f3..37718a2d6a1 100644 --- a/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts b/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts index b8ba47900e1..8f56734e04e 100644 --- a/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/link-churn/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav link-churn (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/react/vite.config.ts b/benchmarks/client-nav/scenarios/links/react/vite.config.ts index 35980471fc4..69de10b5b7a 100644 --- a/benchmarks/client-nav/scenarios/links/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/solid/vite.config.ts b/benchmarks/client-nav/scenarios/links/solid/vite.config.ts index ed64b285095..e37342ffc37 100644 --- a/benchmarks/client-nav/scenarios/links/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/links/vue/vite.config.ts b/benchmarks/client-nav/scenarios/links/vue/vite.config.ts index b52a0a71c71..ad89a49d70d 100644 --- a/benchmarks/client-nav/scenarios/links/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/links/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav links (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts index afdcefe5087..818b2241302 100644 --- a/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts index 07a36dd9fc1..90584d3b7e6 100644 --- a/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts b/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts index 87f4910e490..ecf4cce139f 100644 --- a/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/loaders/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav loaders (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/react/vite.config.ts b/benchmarks/client-nav/scenarios/mount/react/vite.config.ts index e0df92562c4..e197d33a9e0 100644 --- a/benchmarks/client-nav/scenarios/mount/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts b/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts index d4a304f7f65..5b586dd1289 100644 --- a/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts b/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts index e1dfeb810c6..8d4005f3394 100644 --- a/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/mount/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav mount (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts index 2b0899e7119..a99060bf1c2 100644 --- a/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts index bfbea0b0b9d..9897e2c1994 100644 --- a/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts b/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts index 072ea3d2ba1..0d74eb7a7c5 100644 --- a/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/nested-params/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav nested-params (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/react/vite.config.ts b/benchmarks/client-nav/scenarios/preload/react/vite.config.ts index 6aa7a12e5b5..8a41fc8707e 100644 --- a/benchmarks/client-nav/scenarios/preload/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts b/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts index 7feee6b21c3..07014e61242 100644 --- a/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts b/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts index f97d0cbbab4..8d00e663786 100644 --- a/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/preload/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav preload (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts index 41ce58e294c..e79e8522e95 100644 --- a/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts index 3ce56e383b1..c9e99b7d602 100644 --- a/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts b/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts index c4f384c2dc3..1a795a4e1d7 100644 --- a/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/rewrites/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav rewrites (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts index 54d5d088608..0f588fda53a 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts index 71233caab50..542ede131bd 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -43,7 +40,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts b/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts index 44679fce0b1..189ba1de99b 100644 --- a/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/route-tree-scale/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -42,7 +39,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav route-tree-scale (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts index 4c714834af5..0318a108155 100644 --- a/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -37,7 +34,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (react)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts index f7be053fa82..511fd494665 100644 --- a/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -40,7 +37,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts b/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts index 46a6d002cca..27490b276ab 100644 --- a/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts +++ b/benchmarks/client-nav/scenarios/search-params/vue/vite.config.ts @@ -4,10 +4,7 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackRouter } from '@tanstack/router-plugin/vite' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +36,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav search-params (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/solid/vite.config.ts b/benchmarks/client-nav/solid/vite.config.ts index d0b21c1d6bd..0c26b32f5f1 100644 --- a/benchmarks/client-nav/solid/vite.config.ts +++ b/benchmarks/client-nav/solid/vite.config.ts @@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url' import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' import codspeedPlugin from '@codspeed/vitest-plugin' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -33,7 +33,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (solid)', watch: false, environment: 'jsdom', diff --git a/benchmarks/client-nav/vue/vite.config.ts b/benchmarks/client-nav/vue/vite.config.ts index f0abf490ac0..78d8ae56386 100644 --- a/benchmarks/client-nav/vue/vite.config.ts +++ b/benchmarks/client-nav/vue/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import codspeedPlugin from '@codspeed/vitest-plugin' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' // Anchor the project root to the package directory so this config resolves // identically when run directly and as part of an aggregate `projects` config. @@ -32,7 +32,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, name: '@benchmarks/client-nav (vue)', watch: false, environment: 'jsdom', diff --git a/benchmarks/cpu-simulation.ts b/benchmarks/cpu-simulation.ts index 87a60b7364e..9b8859f74d0 100644 --- a/benchmarks/cpu-simulation.ts +++ b/benchmarks/cpu-simulation.ts @@ -37,13 +37,6 @@ export function cpuSimulationExecArgv() { return [] } -/** - * Vitest 5 runs benchmarks inside tests with at least a 60 s timeout. - * Instrumented CodSpeed runs are far slower than native ones, so allow each - * benchmark test up to 10 minutes. - */ -export const benchTestTimeout = 10 * 60_000 - /** * Per-bench lifecycle for apps that a bench prepares and disposes outside * timing. CodSpeed measures one invocation, so each invocation gets fresh diff --git a/benchmarks/memory/runtime.ts b/benchmarks/memory/runtime.ts index 77ba91618e2..010149b4df6 100644 --- a/benchmarks/memory/runtime.ts +++ b/benchmarks/memory/runtime.ts @@ -1,5 +1,4 @@ import { fileURLToPath } from 'node:url' -import { benchTestTimeout } from '../cpu-simulation' import { isMemoryInstrumented } from './turn' /** Worker settings for the CodSpeed memory instrument. */ @@ -29,7 +28,6 @@ export function memoryConfig(side: 'client' | 'server') { const execArgv = memoryExecArgv() return { execArgv, - testTimeout: benchTestTimeout, setupFiles: side === 'client' ? [fileURLToPath(new URL('./client/vitest.setup.ts', import.meta.url))] diff --git a/benchmarks/ssr/react/vite.config.ts b/benchmarks/ssr/react/vite.config.ts index db65212aabd..e607db366b2 100644 --- a/benchmarks/ssr/react/vite.config.ts +++ b/benchmarks/ssr/react/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/react/vite.config.ts b/benchmarks/ssr/scenarios/assets/react/vite.config.ts index 2a84ddef2ca..5990bba6d3b 100644 --- a/benchmarks/ssr/scenarios/assets/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -32,7 +29,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/solid/vite.config.ts b/benchmarks/ssr/scenarios/assets/solid/vite.config.ts index 11ff08419b0..3ee54e5ae29 100644 --- a/benchmarks/ssr/scenarios/assets/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -32,7 +29,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/assets/vue/vite.config.ts b/benchmarks/ssr/scenarios/assets/vue/vite.config.ts index f1a993b9d65..e664b9b02b8 100644 --- a/benchmarks/ssr/scenarios/assets/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/assets/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -32,7 +29,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr assets (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/react/vite.config.ts b/benchmarks/ssr/scenarios/before-load/react/vite.config.ts index 289060e106b..3fd72c5f1d0 100644 --- a/benchmarks/ssr/scenarios/before-load/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts b/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts index 7b6bf093658..a20e32742e5 100644 --- a/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts b/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts index 8d1d10471c0..093776869f8 100644 --- a/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/before-load/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr before-load (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts index fb1f3c53468..273d7d9d804 100644 --- a/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts index d19107ebc16..c75c9574661 100644 --- a/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts b/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts index 16253495560..1b77968d968 100644 --- a/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/control-flow/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr control-flow (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts index c21046278c6..968a8a24e9f 100644 --- a/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts index 0c093dae353..f3597b25d54 100644 --- a/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts b/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts index 1fb5c121d09..8e29c5ee98d 100644 --- a/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/global-middleware/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr global-middleware (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/react/vite.config.ts b/benchmarks/ssr/scenarios/head/react/vite.config.ts index 85ca1ed57e1..d24fc850a14 100644 --- a/benchmarks/ssr/scenarios/head/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/solid/vite.config.ts b/benchmarks/ssr/scenarios/head/solid/vite.config.ts index cbec6950b38..7a870bbd77c 100644 --- a/benchmarks/ssr/scenarios/head/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/head/vue/vite.config.ts b/benchmarks/ssr/scenarios/head/vue/vite.config.ts index 3e697a7dc6d..1434d260693 100644 --- a/benchmarks/ssr/scenarios/head/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/head/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr head (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/react/vite.config.ts b/benchmarks/ssr/scenarios/loaders/react/vite.config.ts index 63f7a3bd7d4..e761426c84c 100644 --- a/benchmarks/ssr/scenarios/loaders/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts b/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts index 9d929fcb261..64f52159c3a 100644 --- a/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts b/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts index 47b9b2497bc..92bf3e60f0e 100644 --- a/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/loaders/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr loaders (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts index 3e6340e7d6f..7b20340ec6d 100644 --- a/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -30,7 +27,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts index 47ff3842dd2..963fe7132bc 100644 --- a/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -30,7 +27,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts b/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts index 7b0eafab154..22399ec6b2a 100644 --- a/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/rewrites/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -30,7 +27,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr rewrites (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts index 01e722519c5..70c67cff81b 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts index dce4d0eb533..2c0042c1ed9 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts b/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts index 66f047e1fff..09bb36cb0bf 100644 --- a/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/selective-ssr/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr selective-ssr (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/react/vite.config.ts b/benchmarks/ssr/scenarios/serialization/react/vite.config.ts index 6e7029522b5..64568ccb7e2 100644 --- a/benchmarks/ssr/scenarios/serialization/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts b/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts index 5da16acca57..db81e2ab746 100644 --- a/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts b/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts index 3acd04bd373..b89537fa18d 100644 --- a/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/serialization/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr serialization (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts index 9a3f9813b12..c37fde0c4bd 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts index c72bdbc68e5..a8af4a6b50a 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts index bbd2b9a24a8..0f3e2ce84d8 100644 --- a/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fn-transport/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fn-transport (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts index 9d3be5ab14c..cd56edda95e 100644 --- a/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts index 2cffc259171..2f2f78b75cc 100644 --- a/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts index b987be74088..5f3e3ca4b56 100644 --- a/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-fns/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-fns (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts index e426bae406e..f6998c2ac85 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts index 9f2ba834e61..800cf9db9f1 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts index fd4cbd5e0bf..909b7cca504 100644 --- a/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes-middleware/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes-middleware (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts index 388cc32fba8..2c723c749cf 100644 --- a/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts index e80ed327635..994e04f1d65 100644 --- a/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts b/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts index 92c55a5cf8f..04574535322 100644 --- a/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/server-routes/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr server-routes (vue)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/react/vite.config.ts b/benchmarks/ssr/scenarios/streaming/react/vite.config.ts index 8cc47e3ac26..e1cc5f534bb 100644 --- a/benchmarks/ssr/scenarios/streaming/react/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/react/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/react-start/plugin/vite' import react from '@vitejs/plugin-react' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (react)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts b/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts index 554efb74d86..353c21f5520 100644 --- a/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/solid/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (solid)', watch: false, diff --git a/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts b/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts index 7b29df6ab86..a09a30076fa 100644 --- a/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts +++ b/benchmarks/ssr/scenarios/streaming/vue/vite.config.ts @@ -3,10 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { - benchTestTimeout, - cpuSimulationExecArgv, -} from '../../../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -27,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr streaming (vue)', watch: false, diff --git a/benchmarks/ssr/solid/vite.config.ts b/benchmarks/ssr/solid/vite.config.ts index afad736ee6c..dfd82d91923 100644 --- a/benchmarks/ssr/solid/vite.config.ts +++ b/benchmarks/ssr/solid/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import solid from 'vite-plugin-solid' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (solid)', watch: false, diff --git a/benchmarks/ssr/vue/vite.config.ts b/benchmarks/ssr/vue/vite.config.ts index 0658d6db4b1..b2b9fc8a09b 100644 --- a/benchmarks/ssr/vue/vite.config.ts +++ b/benchmarks/ssr/vue/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vitest/config' import codspeedPlugin from '@codspeed/vitest-plugin' import { tanstackStart } from '@tanstack/vue-start/plugin/vite' import vueJsx from '@vitejs/plugin-vue-jsx' -import { benchTestTimeout, cpuSimulationExecArgv } from '../../cpu-simulation' +import { cpuSimulationExecArgv } from '../../cpu-simulation' const rootDir = fileURLToPath(new URL('.', import.meta.url)) @@ -24,7 +24,6 @@ export default defineConfig({ }, test: { execArgv: cpuSimulationExecArgv(), - testTimeout: benchTestTimeout, isolate: true, name: '@benchmarks/ssr (vue)', watch: false,