Conversation
Replace Jest-specific package scripts, resolver config, and lint integration with a Vitest workspace setup. Refresh the lockfile and package metadata so the repo resolves source imports through Vitest/Vite instead of the old Jest ESM workaround.
Update the test suite to use Vitest imports and async patterns, add the core test setup needed to shield jsdom tests from Node 25's broken global localStorage, and keep the typed-array normalization fix that the migrated Utils tests now exercise for BigInt views.
Update repo instructions, editor recommendations, and devcontainer defaults so local tooling points at Vitest instead of the removed Jest workflow.
There was a problem hiding this comment.
Pull request overview
Migrates the monorepo test runner from Jest/ts-jest to Vitest, aligning test execution with a Vite-based workflow while updating linting/editor/devcontainer tooling accordingly.
Changes:
- Add root Vitest multi-project configuration and switch root + workspace test scripts to Vitest.
- Remove Jest configuration/dependencies and update tests to use
vitestAPIs (expect,vi, hooks). - Update ESLint/VScode/devcontainer/docs to reflect the new testing toolchain and environments.
Reviewed changes
Copilot reviewed 35 out of 36 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| vitest.config.ts | Adds Vitest multi-project setup for core/browser/node packages. |
| package.json | Switches root test scripts to Vitest; updates devDependencies (Vitest + jsdom + eslint plugin). |
| eslint.config.mjs | Replaces Jest ESLint integration with Vitest ESLint integration; updates ignores. |
| jest-resolver.cjs | Removes custom Jest resolver used for TS/ESM import compatibility. |
| packages/core/package.json | Removes Jest config/deps; routes tests to root Vitest project. |
| packages/browser/package.json | Removes Jest config/deps; routes tests to root Vitest project. |
| packages/node/package.json | Removes Jest config/deps; routes tests to root Vitest project; updates node engine. |
| packages/react/package.json | Removes Jest devDependencies from react package. |
| packages/core/tsconfig.json | Removes Jest types from TS config. |
| packages/browser/tsconfig.json | Removes Jest types from TS config. |
| packages/node/tsconfig.json | Removes Jest types from TS config. |
| packages/core/test/setup.ts | Adds shared test setup (localStorage handling/cleanup). |
| packages/core/test/storage/StorageTestBase.ts | Updates test helper imports to Vitest APIs. |
| packages/core/test/submission/TestSubmissionClient.test.ts | Migrates mocks from jest to vi. |
| packages/core/test/queue/DefaultEventQueue.test.ts | Updates setup assertions and refactors conditional expectations. |
| packages/core/test/plugins/default/EventExclusionPlugin.test.ts | Migrates to Vitest imports. |
| packages/core/test/plugins/default/DuplicateCheckerPlugin.test.ts | Migrates to Vitest imports. |
| packages/core/test/plugins/default/ConfigurationDefaultsPlugin.test.ts | Migrates to Vitest imports. |
| packages/core/test/plugins/EventPluginManager.test.ts | Migrates to Vitest imports. |
| packages/core/test/configuration/Configuration.test.ts | Reworks async test from done callback to Promise-based completion (Vitest-friendly). |
| packages/core/test/Utils.test.ts | Migrates to Vitest imports and simplifies assertions. |
| packages/core/test/ExceptionlessClient.test.ts | Migrates to Vitest imports. |
| packages/core/src/Utils.ts | Adjusts TypedArray handling in prune implementation. |
| packages/browser/test/plugins/BrowserIgnoreExtensionErrorsPlugin.test.ts | Migrates to Vitest imports. |
| packages/browser/test/plugins/BrowserErrorPlugin.test.ts | Migrates to Vitest imports. |
| packages/node/test/storage/NodeDirectoryStorage.test.ts | Makes test data directory path stable via import.meta.url + path. |
| example/react/src/setupTests.js | Removes Jest-specific test setup file. |
| example/react/package.json | Removes Jest-specific eslint config/dependency for the example app. |
| AGENTS.md | Updates testing framework documentation to Vitest. |
| .vscode/settings.json | Removes Jest extension configuration. |
| .vscode/launch.json | Updates launch configs to run Vitest instead of Jest. |
| .vscode/extensions.json | Updates recommended extensions from Jest tooling to Vitest tooling. |
| .devcontainer/devcontainer.json | Updates devcontainer extensions and switches install to npm ci. |
| .claude/agents/pr-reviewer.md | Updates guidance text to reference Vitest. |
| .claude/agents/engineer.md | Updates guidance text to reference Vitest. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The build workflow published branch prerelease packages without an explicit dist-tag and used overly broad publish gating, causing push builds to fail and making CI package tags unsafe.
Explicitly set the shell to bash for build steps that utilize bash-specific syntax, such as parameter expansion, to ensure consistent behavior across different runner environments.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.