vitejs / vitejs/vite-plugin-react

more test coverage for experimental plugin-rsc features

Open
#1,071 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

plugin: rsc
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 id and deps (both js and css arrays)
  • Callback is called on every access (not memoized)
  • setRequireModule with onLoad callback 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 include precedence attribute
  • When false: CSS links are rendered without the precedence attribute
  • Both generateResourcesCode and preloadDeps respect 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 precedence attribute

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.