Skip to content

Commit 14603f9

Browse files
committed
cleanup: combine SSR tests
Each test was the same except for the version. We can unwrap this again if we need special handling for a specific version or introduce a separate group, but for now, let's combine them.
1 parent 3bf810f commit 14603f9

File tree

1 file changed

+67
-210
lines changed

1 file changed

+67
-210
lines changed

integrations/vite/ssr.test.ts

Lines changed: 67 additions & 210 deletions
Original file line numberDiff line numberDiff line change
@@ -1,215 +1,72 @@
1+
import { describe } from 'vitest'
12
import { candidate, css, html, json, test, ts } from '../utils'
23

3-
const WORKSPACE = {
4-
'index.html': html`
5-
<body>
6-
<div id="app"></div>
7-
<script type="module" src="./src/index.ts"></script>
8-
</body>
9-
`,
10-
'src/index.css': css`@import 'tailwindcss';`,
11-
'src/index.ts': ts`
12-
import './index.css'
13-
14-
document.querySelector('#app').innerHTML = \`
15-
<div class="underline m-2">Hello, world!</div>
16-
\`
17-
`,
18-
'server.ts': ts`
19-
import css from './src/index.css?url'
20-
21-
document.querySelector('#app').innerHTML = \`
22-
<link rel="stylesheet" href="\${css}">
23-
<div class="overline m-3">Hello, world!</div>
24-
\`
25-
`,
26-
}
27-
28-
test(
29-
'Vite 5',
30-
{
31-
fs: {
32-
'package.json': json`
33-
{
34-
"type": "module",
35-
"dependencies": {
36-
"@tailwindcss/vite": "workspace:^",
37-
"tailwindcss": "workspace:^"
38-
},
39-
"_comment": "This test uses Vite 5.3 on purpose. Do not upgrade it to Vite 6.",
40-
"devDependencies": {
41-
"vite": "^5.3"
4+
describe.each([['^5.3'], ['^6.0'], ['^7'], ['^8']])('Using Vite %s', (version) => {
5+
test(
6+
`SSR build`,
7+
{
8+
fs: {
9+
'package.json': json`
10+
{
11+
"type": "module",
12+
"dependencies": {
13+
"@tailwindcss/vite": "workspace:^",
14+
"tailwindcss": "workspace:^"
15+
},
16+
"devDependencies": {
17+
"vite": "${version}"
18+
}
4219
}
43-
}
44-
`,
45-
'vite.config.ts': ts`
46-
import tailwindcss from '@tailwindcss/vite'
47-
import { defineConfig } from 'vite'
48-
49-
export default defineConfig({
50-
build: {
51-
cssMinify: false,
52-
ssrEmitAssets: true,
53-
},
54-
plugins: [tailwindcss()],
55-
})
56-
`,
57-
...WORKSPACE,
20+
`,
21+
'vite.config.ts': ts`
22+
import tailwindcss from '@tailwindcss/vite'
23+
import { defineConfig } from 'vite'
24+
25+
export default defineConfig({
26+
build: {
27+
cssMinify: false,
28+
ssrEmitAssets: true,
29+
},
30+
plugins: [tailwindcss()],
31+
})
32+
`,
33+
'index.html': html`
34+
<body>
35+
<div id="app"></div>
36+
<script type="module" src="./src/index.ts"></script>
37+
</body>
38+
`,
39+
'src/index.css': css`@import 'tailwindcss';`,
40+
'src/index.ts': ts`
41+
import './index.css'
42+
43+
document.querySelector('#app').innerHTML = \`
44+
<div class="underline m-2">Hello, world!</div>
45+
\`
46+
`,
47+
'server.ts': ts`
48+
import css from './src/index.css?url'
49+
50+
document.querySelector('#app').innerHTML = \`
51+
<link rel="stylesheet" href="\${css}">
52+
<div class="overline m-3">Hello, world!</div>
53+
\`
54+
`,
55+
},
5856
},
59-
},
60-
async ({ fs, exec, expect }) => {
61-
await exec('pnpm vite build --ssr server.ts')
62-
63-
let files = await fs.glob('dist/**/*.css')
64-
expect(files).toHaveLength(1)
65-
let [filename] = files[0]
66-
67-
await fs.expectFileToContain(filename, [
68-
candidate`underline`,
69-
candidate`m-2`,
70-
candidate`overline`,
71-
candidate`m-3`,
72-
])
73-
},
74-
)
75-
76-
test(
77-
`Vite 6`,
78-
{
79-
fs: {
80-
'package.json': json`
81-
{
82-
"type": "module",
83-
"dependencies": {
84-
"@tailwindcss/vite": "workspace:^",
85-
"tailwindcss": "workspace:^"
86-
},
87-
"devDependencies": {
88-
"vite": "^6.0"
89-
}
90-
}
91-
`,
92-
'vite.config.ts': ts`
93-
import tailwindcss from '@tailwindcss/vite'
94-
import { defineConfig } from 'vite'
95-
96-
export default defineConfig({
97-
build: {
98-
cssMinify: false,
99-
ssrEmitAssets: true,
100-
},
101-
plugins: [tailwindcss()],
102-
})
103-
`,
104-
...WORKSPACE,
57+
async ({ fs, exec, expect }) => {
58+
await exec('pnpm vite build --ssr server.ts')
59+
60+
let files = await fs.glob('dist/**/*.css')
61+
expect(files).toHaveLength(1)
62+
let [filename] = files[0]
63+
64+
await fs.expectFileToContain(filename, [
65+
candidate`underline`,
66+
candidate`m-2`,
67+
candidate`overline`,
68+
candidate`m-3`,
69+
])
10570
},
106-
},
107-
async ({ fs, exec, expect }) => {
108-
await exec('pnpm vite build --ssr server.ts')
109-
110-
let files = await fs.glob('dist/**/*.css')
111-
expect(files).toHaveLength(1)
112-
let [filename] = files[0]
113-
114-
await fs.expectFileToContain(filename, [
115-
candidate`underline`,
116-
candidate`m-2`,
117-
candidate`overline`,
118-
candidate`m-3`,
119-
])
120-
},
121-
)
122-
123-
test(
124-
`Vite 7`,
125-
{
126-
fs: {
127-
'package.json': json`
128-
{
129-
"type": "module",
130-
"dependencies": {
131-
"@tailwindcss/vite": "workspace:^",
132-
"tailwindcss": "workspace:^"
133-
},
134-
"devDependencies": {
135-
"vite": "^7"
136-
}
137-
}
138-
`,
139-
'vite.config.ts': ts`
140-
import tailwindcss from '@tailwindcss/vite'
141-
import { defineConfig } from 'vite'
142-
143-
export default defineConfig({
144-
build: {
145-
cssMinify: false,
146-
ssrEmitAssets: true,
147-
},
148-
plugins: [tailwindcss()],
149-
})
150-
`,
151-
...WORKSPACE,
152-
},
153-
},
154-
async ({ fs, exec, expect }) => {
155-
await exec('pnpm vite build --ssr server.ts')
156-
157-
let files = await fs.glob('dist/**/*.css')
158-
expect(files).toHaveLength(1)
159-
let [filename] = files[0]
160-
161-
await fs.expectFileToContain(filename, [
162-
candidate`underline`,
163-
candidate`m-2`,
164-
candidate`overline`,
165-
candidate`m-3`,
166-
])
167-
},
168-
)
169-
170-
test(
171-
`Vite 8`,
172-
{
173-
fs: {
174-
'package.json': json`
175-
{
176-
"type": "module",
177-
"dependencies": {
178-
"@tailwindcss/vite": "workspace:^",
179-
"tailwindcss": "workspace:^"
180-
},
181-
"devDependencies": {
182-
"vite": "^8"
183-
}
184-
}
185-
`,
186-
'vite.config.ts': ts`
187-
import tailwindcss from '@tailwindcss/vite'
188-
import { defineConfig } from 'vite'
189-
190-
export default defineConfig({
191-
build: {
192-
cssMinify: false,
193-
ssrEmitAssets: true,
194-
},
195-
plugins: [tailwindcss()],
196-
})
197-
`,
198-
...WORKSPACE,
199-
},
200-
},
201-
async ({ fs, exec, expect }) => {
202-
await exec('pnpm vite build --ssr server.ts')
203-
204-
let files = await fs.glob('dist/**/*.css')
205-
expect(files).toHaveLength(1)
206-
let [filename] = files[0]
207-
208-
await fs.expectFileToContain(filename, [
209-
candidate`underline`,
210-
candidate`m-2`,
211-
candidate`overline`,
212-
candidate`m-3`,
213-
])
214-
},
215-
)
71+
)
72+
})

0 commit comments

Comments
 (0)