refactor(test): remove jest-specific setup file#19
Conversation
chenjiahan
commented
Mar 14, 2026
- replace jest.fn() and jest.spyOn() with rstest equivalents
- update test configuration to use rstest
- convert callback-based tests to async/await
- add utility functions for test synchroniz
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the testing infrastructure by migrating away from Jest-specific setup and utilities towards Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request is a significant and well-executed refactoring of the test suite. It successfully removes the dependency on Jest-specific setup files and APIs, replacing them with rstest equivalents. The conversion of callback-based asynchronous tests to use modern async/await syntax, along with the introduction of helper functions like waitUntilValid and waitForCompilerDone, greatly improves the readability, maintainability, and reliability of the tests. The changes are consistent and thorough. I have one suggestion to improve the robustness of a new test helper to prevent a potential memory leak.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 78866b276d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR updates the test suite to remove the custom setupTest.js harness (including the done-style wrapper and globalThis.jest alias) and modernizes several tests to use async/await-style flow and the new test runner configuration.
Changes:
- Removed
setupTest.jsand migrated timeout configuration intorstest.config.mjs. - Replaced
jest.*usages withrs.*across multiple test files. - Converted several callback-based middleware tests to async/await helpers (
waitUntilValid,waitForCompilerDone) to reduce manual interval polling.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/utils/setupWriteToDisk.test.js | Switches mocks/spies from jest to rs. |
| test/utils/setupOutputFileSystem.test.js | Switches memfs spy from jest to rs. |
| test/utils/setupHooks.test.js | Switches mocks/spies from jest to rs. |
| test/utils/ready.test.js | Switches mocks from jest to rs. |
| test/middleware.test.js | Converts multiple tests from done callbacks to async/await; introduces helper Promises; switches spies to rs. |
| test/helpers/listenAndCompile.js | Renames callback parameter (done → callback) and clarifies comment. |
| setupTest.js | Deleted prior test setup that configured timeouts and aliased jest to the runner API. |
| rstest.config.mjs | Moves testTimeout into config and removes setupFiles entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.