migrate-to-rstest

star 75

Migrate Jest or Vitest test suites and configs to Rstest. Use when asked to move from Jest/Vitest to Rstest, replace framework APIs with `@rstest/core`, translate test config to `rstest.config.ts`, or update test scripts and setup files for Rstest equivalents.

rstackjs By rstackjs schedule Updated 5/25/2026

name: migrate-to-rstest description: Migrate Jest or Vitest projects to Rstest. Use when asked to move from Jest/Vitest to Rstest, replace jest/vi APIs with @rstest/core, translate config into rstest.config.ts, update scripts/coverage/setup/mocks/snapshots/projects, or diagnose migration failures caused by Rstest's Rsbuild/Rspack execution model or version skew.

Migrate to Rstest

Goal

Migrate Jest/Vitest tests and config to Rstest with minimal behavior changes. Use the current Rstest migration docs for exact mappings; this skill adds scope, dependency, and cleanup guardrails.

Workflow

  1. Detect runner and scope (references/detect-test-framework.md).
  2. Run dependency/version gates (references/dependency-install-gate.md).
  3. Read only the needed deltas: Jest, Vitest, and/or global API replacement.
  4. Migrate scripts/config/setup before tests; prefer adapters or Rsbuild/Rspack config fixes before editing test bodies.
  5. Validate discovery/types/run, fixing failures in this order: dependency skew, config/resolver, setup/env/coverage, mocks/timers/snapshots, test bodies.
  6. After the scope is green, remove only scope-local legacy files and devDeps no remaining scope uses.
  7. Summarize changes, kept legacy files, unsupported fields, and TODOs.

Guardrails

  • Keep the smallest viable scope; do not broaden a monorepo migration or bulk-rewrite tests when config/setup fixes are plausible.
  • Do not change production behavior, assertions, test names, scenarios, or coverage thresholds to make migration pass.
  • No jest/vi shims or aliases; rewrite call sites to Rstest APIs (references/global-api-migration.md).
  • Do not silently drop unknown config fields; verify or report them as unsupported.

High-risk Rstest deltas

  • rstest / rstest run is single-run; watch mode is rstest --watch or rstest watch.
  • globals defaults to false; if globals remain, set globals: true and add @rstest/core/globals types.
  • Rstest runs on Rsbuild/Rspack. Use references/dependency-install-gate.md for latest-only APIs, coverage providers, adapters, plugins, and toolchain-version fallbacks.

Escalate before large edits

If the next fix requires many test edits or production source changes, stop and report: why smaller fixes failed, options, risks, and the recommended path.

Install via CLI
npx skills add https://github.com/rstackjs/agent-skills --skill migrate-to-rstest
Repository Details
star Stars 75
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator