Skip to content

Commit 4f64ab9

Browse files
authored
Vue start (#6055)
1 parent 395d34d commit 4f64ab9

File tree

170 files changed

+6437
-490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+6437
-490
lines changed

e2e/vue-start/basic/.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
node_modules
2+
package-lock.json
3+
yarn.lock
4+
5+
.DS_Store
6+
.cache
7+
.env
8+
.vercel
9+
.output
10+
11+
/build/
12+
/api/
13+
/server/build
14+
/public/build
15+
# Sentry Config File
16+
.env.sentry-build-plugin
17+
/test-results/
18+
/playwright-report/
19+
/blob-report/
20+
/playwright/.cache/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
routeTree.gen.ts

e2e/vue-start/basic/package.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"name": "tanstack-vue-start-e2e-basic",
3+
"private": true,
4+
"sideEffects": false,
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite dev --port 3000",
8+
"dev:e2e": "vite dev",
9+
"build": "vite build && tsc --noEmit",
10+
"build:spa": "MODE=spa vite build && tsc --noEmit",
11+
"build:prerender": "MODE=prerender vite build && tsc --noEmit",
12+
"preview": "vite preview",
13+
"start": "pnpx srvx --prod -s ../client dist/server/server.js",
14+
"start:spa": "node server.js",
15+
"test:e2e:startDummyServer": "node -e 'import(\"./tests/setup/global.setup.ts\").then(m => m.default())' &",
16+
"test:e2e:stopDummyServer": "node -e 'import(\"./tests/setup/global.teardown.ts\").then(m => m.default())'",
17+
"test:e2e:spaMode": "rm -rf port*.txt; MODE=spa playwright test --project=chromium",
18+
"test:e2e:ssrMode": "rm -rf port*.txt; playwright test --project=chromium",
19+
"test:e2e:prerender": "rm -rf port*.txt; MODE=prerender playwright test --project=chromium",
20+
"test:e2e:preview": "rm -rf port*.txt; MODE=preview playwright test --project=chromium",
21+
"test:e2e": "pnpm run test:e2e:spaMode && pnpm run test:e2e:ssrMode && pnpm run test:e2e:prerender && pnpm run test:e2e:preview"
22+
},
23+
"dependencies": {
24+
"@tanstack/vue-router": "workspace:^",
25+
"@tanstack/vue-router-devtools": "workspace:^",
26+
"@tanstack/vue-start": "workspace:^",
27+
"express": "^5.1.0",
28+
"http-proxy-middleware": "^3.0.5",
29+
"js-cookie": "^3.0.5",
30+
"redaxios": "^0.5.1",
31+
"vue": "^3.5.16",
32+
"tailwind-merge": "^2.6.0",
33+
"vite": "^7.1.7",
34+
"zod": "^3.24.2"
35+
},
36+
"devDependencies": {
37+
"@playwright/test": "^1.50.1",
38+
"@tailwindcss/postcss": "^4.1.15",
39+
"@tanstack/router-e2e-utils": "workspace:^",
40+
"@types/js-cookie": "^3.0.6",
41+
"@types/node": "^22.10.2",
42+
"@vitejs/plugin-vue": "^5.2.4",
43+
"@vitejs/plugin-vue-jsx": "^4.1.2",
44+
"combinate": "^1.1.11",
45+
"postcss": "^8.5.1",
46+
"srvx": "^0.8.6",
47+
"tailwindcss": "^4.1.15",
48+
"typescript": "^5.7.2",
49+
"vite-tsconfig-paths": "^5.1.4"
50+
}
51+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { defineConfig, devices } from '@playwright/test'
2+
import {
3+
getDummyServerPort,
4+
getTestServerPort,
5+
} from '@tanstack/router-e2e-utils'
6+
import { isSpaMode } from './tests/utils/isSpaMode'
7+
import { isPrerender } from './tests/utils/isPrerender'
8+
import { isPreview } from './tests/utils/isPreview'
9+
import packageJson from './package.json' with { type: 'json' }
10+
11+
const PORT = await getTestServerPort(
12+
`${packageJson.name}${isSpaMode ? '_spa' : ''}${isPreview ? '_preview' : ''}`,
13+
)
14+
const START_PORT = await getTestServerPort(
15+
`${packageJson.name}${isSpaMode ? '_spa_start' : ''}`,
16+
)
17+
const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)
18+
const baseURL = `http://localhost:${PORT}`
19+
const spaModeCommand = `pnpm build:spa && pnpm start:spa`
20+
const ssrModeCommand = `pnpm build && pnpm start`
21+
const prerenderModeCommand = `pnpm run test:e2e:startDummyServer && pnpm build:prerender && pnpm run test:e2e:stopDummyServer && pnpm start`
22+
const previewModeCommand = `pnpm build && pnpm preview --port ${PORT}`
23+
24+
const getCommand = () => {
25+
if (isSpaMode) return spaModeCommand
26+
if (isPrerender) return prerenderModeCommand
27+
if (isPreview) return previewModeCommand
28+
return ssrModeCommand
29+
}
30+
console.log('running in spa mode: ', isSpaMode.toString())
31+
console.log('running in prerender mode: ', isPrerender.toString())
32+
console.log('running in preview mode: ', isPreview.toString())
33+
/**
34+
* See https://playwright.dev/docs/test-configuration.
35+
*/
36+
export default defineConfig({
37+
testDir: './tests',
38+
workers: 1,
39+
reporter: [['line']],
40+
41+
globalSetup: './tests/setup/global.setup.ts',
42+
globalTeardown: './tests/setup/global.teardown.ts',
43+
44+
use: {
45+
/* Base URL to use in actions like `await page.goto('/')`. */
46+
baseURL,
47+
},
48+
49+
webServer: {
50+
command: getCommand(),
51+
url: baseURL,
52+
reuseExistingServer: !process.env.CI,
53+
stdout: 'pipe',
54+
env: {
55+
MODE: process.env.MODE || '',
56+
VITE_NODE_ENV: 'test',
57+
VITE_EXTERNAL_PORT: String(EXTERNAL_PORT),
58+
VITE_SERVER_PORT: String(PORT),
59+
START_PORT: String(START_PORT),
60+
PORT: String(PORT),
61+
},
62+
},
63+
64+
projects: [
65+
{
66+
name: 'chromium',
67+
use: {
68+
...devices['Desktop Chrome'],
69+
},
70+
},
71+
],
72+
})
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export default {
2+
plugins: {
3+
'@tailwindcss/postcss': {},
4+
},
5+
}
29.3 KB
Loading
107 KB
Loading
26.6 KB
Loading
832 Bytes
Loading
2.07 KB
Loading

0 commit comments

Comments
 (0)