diff --git a/packages/plugin-rsc/e2e/starter.test.ts b/packages/plugin-rsc/e2e/starter.test.ts
index 1ee2c2e0e..1bee50b70 100644
--- a/packages/plugin-rsc/e2e/starter.test.ts
+++ b/packages/plugin-rsc/e2e/starter.test.ts
@@ -110,6 +110,24 @@ function defineTest(f: Fixture, variant?: 'no-ssr') {
await page.getByRole('button', { name: 'Client Counter: 0' }).click()
})
+ test.describe(() => {
+ test.skip(f.mode === 'build')
+
+ test('server hmr', async ({ page }) => {
+ await page.goto(f.url())
+ await waitForHydration(page)
+ await using _ = await expectNoReload(page)
+ await expect(page.getByText('Vite + RSC')).toBeVisible()
+ const editor = f.createEditor('src/root.tsx')
+ editor.edit((s) =>
+ s.replace('
Vite + RSC
', 'Vite x RSC
'),
+ )
+ await expect(page.getByText('Vite x RSC')).toBeVisible()
+ editor.reset()
+ await expect(page.getByText('Vite + RSC')).toBeVisible()
+ })
+ })
+
test('image assets', async ({ page }) => {
await page.goto(f.url())
await waitForHydration(page)
@@ -122,4 +140,25 @@ function defineTest(f: Fixture, variant?: 'no-ssr') {
0,
)
})
+
+ test('css @js', async ({ page }) => {
+ await page.goto(f.url())
+ await waitForHydration(page)
+ await expect(page.locator('.read-the-docs')).toHaveCSS(
+ 'color',
+ 'rgb(136, 136, 136)',
+ )
+ })
+
+ test.describe(() => {
+ test.skip(variant === 'no-ssr')
+
+ testNoJs('css @nojs', async ({ page }) => {
+ await page.goto(f.url())
+ await expect(page.locator('.read-the-docs')).toHaveCSS(
+ 'color',
+ 'rgb(136, 136, 136)',
+ )
+ })
+ })
}