Vitest advertises a Jest-compatible API, and it delivers. describe, test, expect, toHaveBeenCalledWith — all identical. Which is why the five things that aren't compatible are so disorienting: the suite mostly runs, and then a handful of files fail for reasons the error messages don't explain.
1. Globals are opt-in
Jest injects describe and expect into the global scope. Vitest doesn't, by default.
// vitest.config.ts
export default defineConfig({






