From e995b1d1ae683cb49331ec2d46a606c60a99e91d Mon Sep 17 00:00:00 2001 From: wumingdao Date: Sat, 3 Jan 2026 00:43:19 +0800 Subject: [PATCH 1/2] fix: preact browser mode init example of render function not async --- packages/vitest/src/create/browser/examples.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vitest/src/create/browser/examples.ts b/packages/vitest/src/create/browser/examples.ts index 8fe091b1ff6c..5e1f46e83d25 100644 --- a/packages/vitest/src/create/browser/examples.ts +++ b/packages/vitest/src/create/browser/examples.ts @@ -274,6 +274,10 @@ function getExampleTest(framework: string) { test: jsxExample.test.replace('@testing-library/jsx', `@testing-library/${framework}`), } case 'preact': + return { + ...jsxExample, + test: jsxExample.test.replace('@testing-library/jsx', `vitest-browser-${framework}`).replace('const { getByText } = await render()', 'const { getByText } = render()'), + } case 'react': return { ...jsxExample, From 57060b07b4410ad428fd75a6b9d8b3847bdc2bd2 Mon Sep 17 00:00:00 2001 From: wumingdao Date: Sun, 4 Jan 2026 22:23:50 +0800 Subject: [PATCH 2/2] fix: separate example for preact --- .../vitest/src/create/browser/examples.ts | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/packages/vitest/src/create/browser/examples.ts b/packages/vitest/src/create/browser/examples.ts index 5e1f46e83d25..6ba4348dcef4 100644 --- a/packages/vitest/src/create/browser/examples.ts +++ b/packages/vitest/src/create/browser/examples.ts @@ -227,6 +227,39 @@ test('renders name', async () => { `, } +const preactExample = { + name: 'HelloWorld.jsx', + js: ` +export default function HelloWorld({ name }) { + return ( +
+

Hello {name}!

+
+ ) +} +`, + ts: ` +export default function HelloWorld({ name }: { name: string }) { + return ( +
+

Hello {name}!

+
+ ) +} +`, + test: ` +import { expect, test } from 'vitest' +import { render } from 'vitest-browser-preact' +import HelloWorld from '../src/HelloWorld' + +test('renders name', () => { + const { getByText } = render() + const element = getByText('Hello Vitest!') + expect(element).toBeInTheDocument() +}) +`, +} + const vanillaExample = { name: 'HelloWorld.js', js: ` @@ -274,10 +307,7 @@ function getExampleTest(framework: string) { test: jsxExample.test.replace('@testing-library/jsx', `@testing-library/${framework}`), } case 'preact': - return { - ...jsxExample, - test: jsxExample.test.replace('@testing-library/jsx', `vitest-browser-${framework}`).replace('const { getByText } = await render()', 'const { getByText } = render()'), - } + return preactExample case 'react': return { ...jsxExample,