From d03e000a9705fe5fce843934fab181f55e7d56a8 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 21 Jul 2025 13:47:28 +0900 Subject: [PATCH 1/4] test(rsc): add more basic tests to starter --- packages/plugin-rsc/e2e/starter.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/plugin-rsc/e2e/starter.test.ts b/packages/plugin-rsc/e2e/starter.test.ts index 1ee2c2e0e..bc8d32c2a 100644 --- a/packages/plugin-rsc/e2e/starter.test.ts +++ b/packages/plugin-rsc/e2e/starter.test.ts @@ -110,6 +110,25 @@ 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) + const editor = f.createEditor('src/root.tsx') + editor.edit((s) => s.replace('Server Counter', 'Server [edit] Counter')) + await expect( + page.getByRole('button', { name: 'Server [edit] Counter: 0' }), + ).toBeVisible() + editor.reset() + await expect( + page.getByRole('button', { name: 'Server Counter: 0' }), + ).toBeVisible() + }) + }) + test('image assets', async ({ page }) => { await page.goto(f.url()) await waitForHydration(page) From 04e4eb1feb773ddc93cd4da69081f38988fa6f80 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 21 Jul 2025 13:57:13 +0900 Subject: [PATCH 2/4] test: css --- packages/plugin-rsc/e2e/starter.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/plugin-rsc/e2e/starter.test.ts b/packages/plugin-rsc/e2e/starter.test.ts index bc8d32c2a..ec92efa94 100644 --- a/packages/plugin-rsc/e2e/starter.test.ts +++ b/packages/plugin-rsc/e2e/starter.test.ts @@ -141,4 +141,23 @@ 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)', + ) + }) + + testNoJs('css @nojs', async ({ page }) => { + test.skip(variant === 'no-ssr') + + await page.goto(f.url()) + await expect(page.locator('.read-the-docs')).toHaveCSS( + 'color', + 'rgb(136, 136, 136)', + ) + }) } From cc64af874eda1e5a712104fe02c7021f3da2269f Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 21 Jul 2025 13:59:44 +0900 Subject: [PATCH 3/4] test: tweak skip --- packages/plugin-rsc/e2e/starter.test.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/plugin-rsc/e2e/starter.test.ts b/packages/plugin-rsc/e2e/starter.test.ts index ec92efa94..f74cde50b 100644 --- a/packages/plugin-rsc/e2e/starter.test.ts +++ b/packages/plugin-rsc/e2e/starter.test.ts @@ -151,13 +151,15 @@ function defineTest(f: Fixture, variant?: 'no-ssr') { ) }) - testNoJs('css @nojs', async ({ page }) => { + test.describe(() => { test.skip(variant === 'no-ssr') - await page.goto(f.url()) - await expect(page.locator('.read-the-docs')).toHaveCSS( - 'color', - 'rgb(136, 136, 136)', - ) + testNoJs('css @nojs', async ({ page }) => { + await page.goto(f.url()) + await expect(page.locator('.read-the-docs')).toHaveCSS( + 'color', + 'rgb(136, 136, 136)', + ) + }) }) } From 5420b62d199e9c88c9f2159c3dc7f54eddd4a17f Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 21 Jul 2025 14:52:27 +0900 Subject: [PATCH 4/4] test: tweak --- packages/plugin-rsc/e2e/starter.test.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/plugin-rsc/e2e/starter.test.ts b/packages/plugin-rsc/e2e/starter.test.ts index f74cde50b..1bee50b70 100644 --- a/packages/plugin-rsc/e2e/starter.test.ts +++ b/packages/plugin-rsc/e2e/starter.test.ts @@ -117,15 +117,14 @@ function defineTest(f: Fixture, variant?: 'no-ssr') { 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('Server Counter', 'Server [edit] Counter')) - await expect( - page.getByRole('button', { name: 'Server [edit] Counter: 0' }), - ).toBeVisible() + editor.edit((s) => + s.replace('

Vite + RSC

', '

Vite x RSC

'), + ) + await expect(page.getByText('Vite x RSC')).toBeVisible() editor.reset() - await expect( - page.getByRole('button', { name: 'Server Counter: 0' }), - ).toBeVisible() + await expect(page.getByText('Vite + RSC')).toBeVisible() }) })