vitejs / vitejs/vite-plugin-react
more test coverage for experimental plugin-rsc features
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.2k
- Forks
- 269
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 19
Description
Summary
We've landed several experimental features in @vitejs/plugin-rsc that currently lack dedicated test cases. We should add tests to exercise these code paths and ensure they work correctly.
Features needing test coverage
1. onClientReference callback (#1065)
The new setOnClientReference API allows frameworks to be notified when client reference dependencies are loaded during SSR.
import { setOnClientReference, type OnClientReference } from '@vitejs/plugin-rsc/ssr'
const callback: OnClientReference = ({ id, deps }) => {
// id: client reference module id
// deps: { js: string[], css: string[] }
}
setOnClientReference(callback)
Test cases needed:
- Callback is invoked when a client reference is accessed during SSR
- Callback receives correct
idanddeps(bothjsandcssarrays) - Callback is called on every access (not memoized)
setRequireModulewithonLoadcallback works correctly
2. cssLinkPrecedence option (#1064)
The new cssLinkPrecedence option controls whether CSS links use React's precedence attribute.
rsc({
cssLinkPrecedence: false, // disable React's precedence attribute on CSS links
})
Test cases needed:
- When
true(default): CSS links includeprecedenceattribute - When
false: CSS links are rendered without theprecedenceattribute - Both
generateResourcesCodeandpreloadDepsrespect the setting
Related PRs
- #1065 - feat(plugin-rsc): add callback to be notified when client reference dependencies are loaded
- #1064 - feat(plugin-rsc): allow to control whether CSS links use React's
precedenceattribute
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the @vitejs/plugin-rsc/ssr APIs setOnClientReference and setRequireModule, then find the code paths for generateResourcesCode and preloadDeps. Add tests for callback arguments, repeated access, onLoad behavior, and both cssLinkPrecedence settings, including JavaScript and CSS dependencies and the precedence attribute.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- backend, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100