From 01039368399b169d9e463b6968765ddf594b4a3f Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 14:38:49 +0900 Subject: [PATCH 1/4] test(rsc): organize css tests --- packages/plugin-rsc/e2e/basic.test.ts | 208 +++++++++++--------------- pnpm-lock.yaml | 164 +++++++++++++++++++- 2 files changed, 248 insertions(+), 124 deletions(-) diff --git a/packages/plugin-rsc/e2e/basic.test.ts b/packages/plugin-rsc/e2e/basic.test.ts index 3dc95656..c59c1a98 100644 --- a/packages/plugin-rsc/e2e/basic.test.ts +++ b/packages/plugin-rsc/e2e/basic.test.ts @@ -567,6 +567,15 @@ function defineTest(f: Fixture) { test('css @js', async ({ page }) => { await page.goto(f.url()) await waitForHydration(page) + await testCssBasic(page) + }) + + testNoJs('css @nojs', async ({ page }) => { + await page.goto(f.url()) + await testCss(page) + }) + + async function testCssBasic(page: Page) { await testCss(page) await expect(page.locator('.test-dep-css-in-server')).toHaveCSS( 'color', @@ -576,20 +585,23 @@ function defineTest(f: Fixture) { 'color', 'rgb(255, 165, 0)', ) - }) - - testNoJs('css @nojs', async ({ page }) => { - await page.goto(f.url()) - await testCss(page) - await expect(page.locator('.test-dep-css-in-server')).toHaveCSS( + await expect(page.getByTestId('css-module-client')).toHaveCSS( 'color', 'rgb(255, 165, 0)', ) - await expect(page.locator('.test-style-server-manual')).toHaveCSS( + await expect(page.getByTestId('css-module-server')).toHaveCSS( 'color', 'rgb(255, 165, 0)', ) - }) + await expect(page.locator('.test-style-url-client')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + await expect(page.locator('.test-style-url-server')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + } async function testCss(page: Page, color = 'rgb(255, 165, 0)') { await expect(page.locator('.test-style-client')).toHaveCSS('color', color) @@ -783,128 +795,84 @@ function defineTest(f: Fixture) { ) }).toPass() } - }) - test('css client no ssr', async ({ page }) => { - await page.goto(f.url()) - await waitForHydration(page) - await using _ = await expectNoReload(page) - await page.locator("a[href='?test-client-style-no-ssr']").click() - await expect(page.locator('.test-style-client-no-ssr')).toHaveCSS( - 'color', - 'rgb(0, 200, 100)', - ) - }) - - test('css module client @js', async ({ page }) => { - await page.goto(f.url()) - await waitForHydration(page) - await expect(page.getByTestId('css-module-client')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - - if (f.mode !== 'dev') return - - // test client css module HMR - await using _ = await expectNoReload(page) - const editor = f.createEditor('src/routes/style-client/client.module.css') - editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) - await expect(page.getByTestId('css-module-client')).toHaveCSS( - 'color', - 'rgb(0, 165, 255)', - ) - editor.reset() - await expect(page.getByTestId('css-module-client')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - }) - - test('css module server @js', async ({ page }) => { - await page.goto(f.url()) - await waitForHydration(page) - await expect(page.getByTestId('css-module-server')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - - if (f.mode !== 'dev') return - - // test server css module HMR - await using _ = await expectNoReload(page) - const editor = f.createEditor('src/routes/style-server/server.module.css') - editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) - await expect(page.getByTestId('css-module-server')).toHaveCSS( - 'color', - 'rgb(0, 165, 255)', - ) - editor.reset() - await expect(page.getByTestId('css-module-server')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - }) - - testNoJs('css module @nojs', async ({ page }) => { - await page.goto(f.url()) - await expect(page.getByTestId('css-module-client')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - await expect(page.getByTestId('css-module-server')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - }) + test('css module client hmr', async ({ page }) => { + await page.goto(f.url()) + await waitForHydration(page) + await using _ = await expectNoReload(page) + const editor = f.createEditor('src/routes/style-client/client.module.css') + editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) + await expect(page.getByTestId('css-module-client')).toHaveCSS( + 'color', + 'rgb(0, 165, 255)', + ) + editor.reset() + await expect(page.getByTestId('css-module-client')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + }) - test('css url client @js', async ({ page }) => { - await page.goto(f.url()) - await waitForHydration(page) - await expect(page.locator('.test-style-url-client')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) + test('css module server hmr', async ({ page }) => { + await page.goto(f.url()) + await waitForHydration(page) + await using _ = await expectNoReload(page) + const editor = f.createEditor('src/routes/style-server/server.module.css') + editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) + await expect(page.getByTestId('css-module-server')).toHaveCSS( + 'color', + 'rgb(0, 165, 255)', + ) + editor.reset() + await expect(page.getByTestId('css-module-server')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + }) - if (f.mode !== 'dev') return + test('css url client hmr', async ({ page }) => { + await page.goto(f.url()) + await waitForHydration(page) + await using _ = await expectNoReload(page) + const editor = f.createEditor('src/routes/style-client/client-url.css') + editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) + await expect(page.locator('.test-style-url-client')).toHaveCSS( + 'color', + 'rgb(0, 165, 255)', + ) + editor.reset() + await expect(page.locator('.test-style-url-client')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + }) - // test client css url HMR - await using _ = await expectNoReload(page) - const editor = f.createEditor('src/routes/style-client/client-url.css') - editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) - await expect(page.locator('.test-style-url-client')).toHaveCSS( - 'color', - 'rgb(0, 165, 255)', - ) - editor.reset() - await expect(page.locator('.test-style-url-client')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) + test('css url server hmr', async ({ page }) => { + await page.goto(f.url()) + await waitForHydration(page) + await using _ = await expectNoReload(page) + const editor = f.createEditor('src/routes/style-server/server-url.css') + editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) + await expect(page.locator('.test-style-url-server')).toHaveCSS( + 'color', + 'rgb(0, 165, 255)', + ) + editor.reset() + await expect(page.locator('.test-style-url-server')).toHaveCSS( + 'color', + 'rgb(255, 165, 0)', + ) + }) }) - test('css url server @js', async ({ page }) => { + test('css client no ssr', async ({ page }) => { await page.goto(f.url()) await waitForHydration(page) - await expect(page.locator('.test-style-url-server')).toHaveCSS( - 'color', - 'rgb(255, 165, 0)', - ) - - if (f.mode !== 'dev') return - - // test server css url HMR await using _ = await expectNoReload(page) - const editor = f.createEditor('src/routes/style-server/server-url.css') - editor.edit((s) => s.replaceAll('rgb(255, 165, 0)', 'rgb(0, 165, 255)')) - await expect(page.locator('.test-style-url-server')).toHaveCSS( - 'color', - 'rgb(0, 165, 255)', - ) - editor.reset() - await expect(page.locator('.test-style-url-server')).toHaveCSS( + await page.locator("a[href='?test-client-style-no-ssr']").click() + await expect(page.locator('.test-style-client-no-ssr')).toHaveCSS( 'color', - 'rgb(255, 165, 0)', + 'rgb(0, 200, 100)', ) }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccfe3e72..32fcc288 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1844,12 +1844,19 @@ packages: resolution: {integrity: sha512-cYxcj5CPn/vo5QSpCZcYzBiLidU5+GlFSqIeNaMgBDtcVRBsBJHZg3pHw999W6nHamFQ1EHuPPByB26tjaJiJw==} engines: {node: '>=6.9.0'} + '@oxc-project/runtime@0.82.3': + resolution: {integrity: sha512-LNh5GlJvYHAnMurO+EyA8jJwN1rki7l3PSHuosDh2I7h00T6/u9rCkUjg/SvPmT1CZzvhuW0y+gf7jcqUy/Usg==} + engines: {node: '>=6.9.0'} + '@oxc-project/types@0.81.0': resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} '@oxc-project/types@0.82.2': resolution: {integrity: sha512-WMGSwd9FsNBs/WfqIOH0h3k1LBdjZJQGYjGnC+vla/fh6HUsu5HzGPerRljiq1hgMQ6gs031YJR12VyP57b/hQ==} + '@oxc-project/types@0.82.3': + resolution: {integrity: sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==} + '@playwright/test@1.54.2': resolution: {integrity: sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==} engines: {node: '>=18'} @@ -1888,6 +1895,11 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-beta.34': + resolution: {integrity: sha512-jf5GNe5jP3Sr1Tih0WKvg2bzvh5T/1TA0fn1u32xSH7ca/p5t+/QRr4VRFCV/na5vjwKEhwWrChsL2AWlY+eoA==} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-beta.32': resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} cpu: [arm64] @@ -1898,6 +1910,11 @@ packages: cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-beta.34': + resolution: {integrity: sha512-2F/TqH4QuJQ34tgWxqBjFL3XV1gMzeQgUO8YRtCPGBSP0GhxtoFzsp7KqmQEothsxztlv+KhhT9Dbg3HHwHViQ==} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.32': resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} cpu: [x64] @@ -1908,6 +1925,11 @@ packages: cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.34': + resolution: {integrity: sha512-E1QuFslgLWbHQ8Qli/AqUKdfg0pockQPwRxVbhNQ74SciZEZpzLaujkdmOLSccMlSXDfFCF8RPnMoRAzQ9JV8Q==} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-beta.32': resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} cpu: [x64] @@ -1918,6 +1940,11 @@ packages: cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-beta.34': + resolution: {integrity: sha512-VS8VInNCwnkpI9WeQaWu3kVBq9ty6g7KrHdLxYMzeqz24+w9hg712TcWdqzdY6sn+24lUoMD9jTZrZ/qfVpk0g==} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} cpu: [arm] @@ -1928,6 +1955,11 @@ packages: cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.34': + resolution: {integrity: sha512-4St4emjcnULnxJYb/5ZDrH/kK/j6PcUgc3eAqH5STmTrcF+I9m/X2xvSF2a2bWv1DOQhxBewThu0KkwGHdgu5w==} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} cpu: [arm64] @@ -1938,6 +1970,11 @@ packages: cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.34': + resolution: {integrity: sha512-a737FTqhFUoWfnebS2SnQ2BS50p0JdukdkUBwy2J06j4hZ6Eej0zEB8vTfAqoCjn8BQKkXBy+3Sx0IRkgwz1gA==} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} cpu: [arm64] @@ -1948,6 +1985,11 @@ packages: cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.34': + resolution: {integrity: sha512-NH+FeQWKyuw0k+PbXqpFWNfvD8RPvfJk766B/njdaWz4TmiEcSB0Nb6guNw1rBpM1FmltQYb3fFnTumtC6pRfA==} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} cpu: [x64] @@ -1958,6 +2000,11 @@ packages: cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.34': + resolution: {integrity: sha512-Q3RSCivp8pNadYK8ke3hLnQk08BkpZX9BmMjgwae2FWzdxhxxUiUzd9By7kneUL0vRQ4uRnhD9VkFQ+Haeqdvw==} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} cpu: [x64] @@ -1968,6 +2015,11 @@ packages: cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.34': + resolution: {integrity: sha512-wDd/HrNcVoBhWWBUW3evJHoo7GJE/RofssBy3Dsiip05YUBmokQVrYAyrboOY4dzs/lJ7HYeBtWQ9hj8wlyF0A==} + cpu: [x64] + os: [linux] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} cpu: [arm64] @@ -1978,6 +2030,11 @@ packages: cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.34': + resolution: {integrity: sha512-dH3FTEV6KTNWpYSgjSXZzeX7vLty9oBYn6R3laEdhwZftQwq030LKL+5wyQdlbX5pnbh4h127hpv3Hl1+sj8dg==} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} engines: {node: '>=14.0.0'} @@ -1988,6 +2045,11 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.34': + resolution: {integrity: sha512-y5BUf+QtO0JsIDKA51FcGwvhJmv89BYjUl8AmN7jqD6k/eU55mH6RJYnxwCsODq5m7KSSTigVb6O7/GqB8wbPw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} cpu: [arm64] @@ -1998,6 +2060,11 @@ packages: cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.34': + resolution: {integrity: sha512-ga5hFhdTwpaNxEiuxZHWnD3ed0GBAzbgzS5tRHpe0ObptxM1a9Xrq6TVfNQirBLwb5Y7T/FJmJi3pmdLy95ljg==} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} cpu: [ia32] @@ -2008,6 +2075,11 @@ packages: cpu: [ia32] os: [win32] + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.34': + resolution: {integrity: sha512-4/MBp9T9eRnZskxWr8EXD/xHvLhdjWaeX/qY9LPRG1JdCGV3DphkLTy5AWwIQ5jhAy2ZNJR5z2fYRlpWU0sIyQ==} + cpu: [ia32] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} cpu: [x64] @@ -2018,12 +2090,20 @@ packages: cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.34': + resolution: {integrity: sha512-7O5iUBX6HSBKlQU4WykpUoEmb0wQmonb6ziKFr3dJTHud2kzDnWMqk344T0qm3uGv9Ddq6Re/94pInxo1G2d4w==} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.32': resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} '@rolldown/pluginutils@1.0.0-beta.33': resolution: {integrity: sha512-she25NCG6NoEPC/SEB4pHs5STcnfI4VBFOzjeI63maSPrWME5J2XC8ogrBgp8NaE/xzj28/kbpSaebiMvFRj+w==} + '@rolldown/pluginutils@1.0.0-beta.34': + resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} + '@rollup/plugin-replace@6.0.2': resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} engines: {node: '>=14.0.0'} @@ -4158,6 +4238,10 @@ packages: resolution: {integrity: sha512-mgu118ZuRguC8unhPCbdZbyRbjQfEMiWqlojBA5aRIncBelRaBomnHNpGKYkYWeK7twRz5Cql30xgqqrA3Xelw==} hasBin: true + rolldown@1.0.0-beta.34: + resolution: {integrity: sha512-Wwh7EwalMzzX3Yy3VN58VEajeR2Si8+HDNMf706jPLIqU7CxneRW+dQVfznf5O0TWTnJyu4npelwg2bzTXB1Nw==} + hasBin: true + rollup@4.44.1: resolution: {integrity: sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -5454,10 +5538,14 @@ snapshots: '@oxc-project/runtime@0.82.2': {} + '@oxc-project/runtime@0.82.3': {} + '@oxc-project/types@0.81.0': {} '@oxc-project/types@0.82.2': {} + '@oxc-project/types@0.82.3': {} + '@playwright/test@1.54.2': dependencies: playwright: 1.54.2 @@ -5490,60 +5578,90 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-beta.33': optional: true + '@rolldown/binding-android-arm64@1.0.0-beta.34': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.32': optional: true '@rolldown/binding-darwin-arm64@1.0.0-beta.33': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.34': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.32': optional: true '@rolldown/binding-darwin-x64@1.0.0-beta.33': optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.34': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.32': optional: true '@rolldown/binding-freebsd-x64@1.0.0-beta.33': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.34': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.33': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.34': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.33': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.34': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-beta.33': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.34': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-beta.33': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.34': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-beta.33': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.34': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-beta.33': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.34': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': dependencies: '@napi-rs/wasm-runtime': 1.0.3 @@ -5554,28 +5672,44 @@ snapshots: '@napi-rs/wasm-runtime': 1.0.3 optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.34': + dependencies: + '@napi-rs/wasm-runtime': 1.0.3 + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.33': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.34': + optional: true + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': optional: true '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.33': optional: true + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.34': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-beta.33': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.34': + optional: true + '@rolldown/pluginutils@1.0.0-beta.32': {} '@rolldown/pluginutils@1.0.0-beta.33': {} + '@rolldown/pluginutils@1.0.0-beta.34': {} + '@rollup/plugin-replace@6.0.2(rollup@4.44.1)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.44.1) @@ -7774,7 +7908,7 @@ snapshots: rfdc@1.4.1: {} - rolldown-plugin-dts@0.15.6(rolldown@1.0.0-beta.33)(typescript@5.9.2): + rolldown-plugin-dts@0.15.6(rolldown@1.0.0-beta.34)(typescript@5.9.2): dependencies: '@babel/generator': 7.28.3 '@babel/parser': 7.28.3 @@ -7784,7 +7918,7 @@ snapshots: debug: 4.4.1 dts-resolver: 2.1.1 get-tsconfig: 4.10.1 - rolldown: 1.0.0-beta.33 + rolldown: 1.0.0-beta.34 optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -7851,6 +7985,28 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.33 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.33 + rolldown@1.0.0-beta.34: + dependencies: + '@oxc-project/runtime': 0.82.3 + '@oxc-project/types': 0.82.3 + '@rolldown/pluginutils': 1.0.0-beta.34 + ansis: 4.1.0 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-beta.34 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.34 + '@rolldown/binding-darwin-x64': 1.0.0-beta.34 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.34 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.34 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.34 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.34 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.34 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.34 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.34 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.34 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.34 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.34 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.34 + rollup@4.44.1: dependencies: '@types/estree': 1.0.8 @@ -8124,8 +8280,8 @@ snapshots: diff: 8.0.2 empathic: 2.0.0 hookable: 5.5.3 - rolldown: 1.0.0-beta.33 - rolldown-plugin-dts: 0.15.6(rolldown@1.0.0-beta.33)(typescript@5.9.2) + rolldown: 1.0.0-beta.34 + rolldown-plugin-dts: 0.15.6(rolldown@1.0.0-beta.34)(typescript@5.9.2) semver: 7.7.2 tinyexec: 1.0.1 tinyglobby: 0.2.14 From b79f2eaa845b1e53173b3dca2fa85f156f541b99 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 14:46:32 +0900 Subject: [PATCH 2/4] test: tweak --- .../plugin-rsc/examples/basic/src/routes/root.tsx | 6 ++---- .../basic/src/routes/style-client/client.tsx | 7 +++++-- .../basic/src/routes/style-server/server.tsx | 7 +++++-- .../examples/basic/src/routes/tailwind/index.tsx | 12 ++++++++++++ 4 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx diff --git a/packages/plugin-rsc/examples/basic/src/routes/root.tsx b/packages/plugin-rsc/examples/basic/src/routes/root.tsx index c11bca2e..eadc31eb 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/root.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/root.tsx @@ -23,8 +23,6 @@ import { TestSerializationServer } from './serialization/server' import { TestCssClientNoSsr } from './style-client-no-ssr/server' import { TestStyleClient } from './style-client/client' import { TestStyleServer } from './style-server/server' -import { TestTailwindClient } from './tailwind/client' -import { TestTailwindServer } from './tailwind/server' import { TestTemporaryReference } from './temporary-reference/client' import { TestUseCache } from './use-cache/server' import { TestReactCache } from './react-cache/server' @@ -42,6 +40,7 @@ import { TestHmrSwitchServer } from './hmr-switch/server' import { TestHmrSwitchClient } from './hmr-switch/client' import { TestTreeShakeServer } from './tree-shake/server' import { TestClientChunkServer } from './chunk/server' +import { TestTailwind } from './tailwind' export function Root(props: { url: URL }) { return ( @@ -61,8 +60,7 @@ export function Root(props: { url: URL }) { - - + diff --git a/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx b/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx index 3ba274f3..e9be3803 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx @@ -7,18 +7,21 @@ import styleUrl from './client-url.css?url' export function TestStyleClient() { return ( - <> +
test-style-client
+ |
test-css-module-client
+ |
test-style-url-client
+ | - +
) } diff --git a/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx b/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx index e2c02874..c4a93fd7 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx @@ -4,23 +4,26 @@ import styleUrl from './server-url.css?url' export function TestStyleServer() { return ( - <> +
test-style-server
+ |
test-css-module-server
+ |
test-style-url-server
+ |
test-style-server-manual
- +
) } diff --git a/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx b/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx new file mode 100644 index 00000000..d51520ff --- /dev/null +++ b/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx @@ -0,0 +1,12 @@ +import { TestTailwindClient } from './client' +import { TestTailwindServer } from './server' + +export function TestTailwind() { + return ( +
+ + | + +
+ ) +} From 323e140e385258689698a4401de1374583e3e8f2 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 14:58:26 +0900 Subject: [PATCH 3/4] chore: tweak --- .../examples/basic/src/routes/css-queries/client.tsx | 9 ++++++--- .../examples/basic/src/routes/css-queries/server.tsx | 10 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/plugin-rsc/examples/basic/src/routes/css-queries/client.tsx b/packages/plugin-rsc/examples/basic/src/routes/css-queries/client.tsx index 5840f928..682e3ebc 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/css-queries/client.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/css-queries/client.tsx @@ -15,6 +15,7 @@ export function TestCssQueriesClient(props: { return (
+
{enabled && ( <> @@ -25,9 +26,11 @@ export function TestCssQueriesClient(props: { )} -
test-css-url-client
-
test-css-inline-client
-
test-css-raw-client
+ test-css-url-client + | + test-css-inline-client + | + test-css-raw-client
) } diff --git a/packages/plugin-rsc/examples/basic/src/routes/css-queries/server.tsx b/packages/plugin-rsc/examples/basic/src/routes/css-queries/server.tsx index 5b3e1c2b..49ed52ee 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/css-queries/server.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/css-queries/server.tsx @@ -11,11 +11,11 @@ export function TestCssQueries() { serverInline={cssInline} serverRaw={cssRaw} /> -
-
test-css-url-server
-
test-css-inline-server
-
test-css-raw-server
-
+ test-css-url-server + | + test-css-inline-server + | + test-css-raw-server ) } From 4ed7720eabb77ba935b0ab60f16f11e021309d15 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 15:02:59 +0900 Subject: [PATCH 4/4] chore: tweak --- .../examples/basic/src/routes/style-client/client.tsx | 2 +- .../examples/basic/src/routes/style-server/server.tsx | 2 +- .../plugin-rsc/examples/basic/src/routes/tailwind/index.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx b/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx index e9be3803..53a7c128 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/style-client/client.tsx @@ -7,7 +7,7 @@ import styleUrl from './client-url.css?url' export function TestStyleClient() { return ( -
+
test-style-client
|
diff --git a/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx b/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx index c4a93fd7..da4bafaf 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx @@ -4,7 +4,7 @@ import styleUrl from './server-url.css?url' export function TestStyleServer() { return ( -
+
test-style-server
|
diff --git a/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx b/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx index d51520ff..7d1d691c 100644 --- a/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx +++ b/packages/plugin-rsc/examples/basic/src/routes/tailwind/index.tsx @@ -3,7 +3,7 @@ import { TestTailwindServer } from './server' export function TestTailwind() { return ( -
+
|