Skip to content

Commit 453f3d4

Browse files
authored
feat: add qwik example (#61)
1 parent 94316ec commit 453f3d4

File tree

6 files changed

+3526
-1640
lines changed

6 files changed

+3526
-1640
lines changed

examples/qwik/package.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@vitest-examples/qwik",
3+
"type": "module",
4+
"scripts": {
5+
"test": "vitest"
6+
},
7+
"devDependencies": {
8+
"@builder.io/qwik": "^1.11.0",
9+
"@builder.io/qwik-city": "^1.11.0",
10+
"@vitest/browser-playwright": "^4.0.16",
11+
"playwright": "^1.57.0",
12+
"typescript": "~5.8.3",
13+
"vite": "^6.0.7",
14+
"vitest": "^4.0.16",
15+
"vitest-browser-qwik": "^0.1.0"
16+
}
17+
}

examples/qwik/src/HelloWorld.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { component$, useSignal } from '@builder.io/qwik'
2+
3+
export default component$(({ name }: { name: string }) => {
4+
const count = useSignal(1)
5+
return (
6+
<div>
7+
<h1>Hello {name} x{count.value}!</h1>
8+
<button onClick$={() => count.value++}>Increment</button>
9+
</div>
10+
)
11+
})
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { expect, test } from 'vitest'
2+
import { render } from 'vitest-browser-qwik'
3+
import HelloWorld from '../src/HelloWorld'
4+
5+
test('renders name', async () => {
6+
const screen = await render(<HelloWorld name="Vitest" />)
7+
8+
await expect.element(screen.getByText('Hello Vitest x1!')).toBeInTheDocument()
9+
await screen.getByRole('button', { name: 'Increment' }).click()
10+
11+
await expect.element(screen.getByText('Hello Vitest x2!')).toBeInTheDocument()
12+
})

examples/qwik/tsconfig.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2020",
4+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
5+
"module": "ESNext",
6+
"moduleResolution": "Bundler",
7+
"jsx": "react-jsx",
8+
"jsxImportSource": "@builder.io/qwik",
9+
"strict": true,
10+
"declaration": true,
11+
"noEmit": true,
12+
"esModuleInterop": true,
13+
"skipLibCheck": true,
14+
"resolveJsonModule": true,
15+
"isolatedModules": true,
16+
"allowSyntheticDefaultImports": true
17+
}
18+
}

examples/qwik/vitest.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { defineConfig } from 'vitest/config'
2+
import { qwikVite } from '@builder.io/qwik/optimizer'
3+
import { playwright } from '@vitest/browser-playwright'
4+
5+
export default defineConfig({
6+
plugins: [qwikVite()],
7+
test: {
8+
browser: {
9+
enabled: true,
10+
provider: playwright(),
11+
instances: [
12+
{ browser: 'chromium' },
13+
],
14+
},
15+
},
16+
})

0 commit comments

Comments
 (0)