Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 1 addition & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,4 @@ jobs:
run: pnpm run type-check

- name: Test unit
run: pnpm run test-unit

- name: Test serve
run: pnpm run test-serve

- name: Test build
run: pnpm run test-build
run: pnpm run test
6 changes: 1 addition & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,8 @@
"lint": "biome check . --diagnostic-level=warn",
"publint": "pnpm build && pnpm -r --filter='vite-plugin-checker' exec publint",
"sort-package-json": "npx sort-package-json \"packages/*/package.json\"",
"test": "pnpm test-unit && pnpm test-serve && pnpm test-build",
"test-build": "VITE_TEST_BUILD=1 vitest run -c vitest.config.e2e.ts",
"test": "pnpm vitest",
"test-knip": "knip",
"test-serve": "vitest run -c vitest.config.e2e.ts",
"test-unit": "vitest run",
"test-unit:watch": "vitest",
"type-check": "pnpm -r --parallel --filter \"vite-plugin-checker\" exec tsc --noEmit"
},
"simple-git-hooks": {
Expand Down
44 changes: 28 additions & 16 deletions playground/vitestSetup.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
import { execa } from 'execa'
import fs from 'node:fs/promises'
import { existsSync } from 'node:fs'
import fs from 'node:fs/promises'
import type * as http from 'node:http'
import os from 'node:os'
import path, { dirname, join, resolve } from 'node:path'
import { execa } from 'execa'
import type { Browser, Page } from 'playwright-chromium'
import { chromium } from 'playwright-chromium'
import strip from 'strip-ansi'
import type { InlineConfig, ResolvedConfig, ViteDevServer } from 'vite'
import { createServer, mergeConfig } from 'vite'
import type { File } from 'vitest'
import { beforeAll, expect } from 'vitest'
import type { Checker } from '../packages/vite-plugin-checker/src/Checker'

import { normalizeLogSerializer } from './serializers'

import type { Browser, Page } from 'playwright-chromium'
import type { InlineConfig, ResolvedConfig, ViteDevServer } from 'vite'
import type { File } from 'vitest'

expect.addSnapshotSerializer(normalizeLogSerializer)

export const workspaceRoot = resolve(__dirname, '../')

export const isBuild = !!process.env.VITE_TEST_BUILD
export const isServe = !isBuild
export const isBuild = process.env.PROJECT === 'build'
export const isServe = process.env.PROJECT === 'serve'

export const isWindows = process.platform === 'win32'
export const viteBinPath = path.posix.join(workspaceRoot, 'packages/vite/bin/vite.js')
export const viteBinPath = path.posix.join(
workspaceRoot,
'packages/vite/bin/vite.js',
)

let server: ViteDevServer | http.Server

Expand Down Expand Up @@ -58,7 +60,7 @@ export let stripedLog: string[] = []
export let diagnostics: string[] = []
export let buildSucceed: boolean

export let resolvedConfig: ResolvedConfig = undefined!
export const resolvedConfig: ResolvedConfig = undefined!

export let page: Page = undefined!
export let browser: Browser = undefined!
Expand Down Expand Up @@ -128,10 +130,15 @@ beforeAll(async (s) => {
if (serve) {
server = await serve()
viteServer = mod.viteServer
startDefaultServe({ _server: (server as any).viteDevServer, port: (server as any).port })
startDefaultServe({
_server: (server as any).viteDevServer,
port: (server as any).port,
})
}
} else {
await startDefaultServe({ port: 5173 + Number(process.env.VITEST_POOL_ID) })
await startDefaultServe({
port: 5173 + Number(process.env.VITEST_POOL_ID),
})
}
}
} catch (e) {
Expand Down Expand Up @@ -181,7 +188,7 @@ export async function startDefaultServe({

const viteDevServer = _server || (await createServer(testConfig))
const checker = viteDevServer.config.plugins.filter(
({ name }) => name === 'vite-plugin-checker'
({ name }) => name === 'vite-plugin-checker',
)[0]

// @ts-ignore
Expand All @@ -199,10 +206,15 @@ export async function startDefaultServe({
const type = args?.[0]
const payload = args?.[1]

if (type === 'vite-plugin-checker' && payload.event === 'vite-plugin-checker:error') {
if (
type === 'vite-plugin-checker' &&
payload.event === 'vite-plugin-checker:error'
) {
const existedCheckerIds = diagnostics.map((d) => d)
const currentCheckerId = payload.data.diagnostics[0]?.checkerId
const checkerReported = existedCheckerIds.some((id) => id === currentCheckerId)
const checkerReported = existedCheckerIds.some(
(id) => id === currentCheckerId,
)

if (checkerReported) {
// update diagnostics for the same checker
Expand Down
29 changes: 0 additions & 29 deletions vitest.config.e2e.ts

This file was deleted.

57 changes: 50 additions & 7 deletions vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,58 @@
import { defineConfig } from 'vitest/config'

const timeout = process.env.CI ? 80000 : 40000

export default defineConfig({
test: {
exclude: [
'**/node_modules/**',
'**/dist/**',
'./playground/**/*.*',
'./playground-temp/**/*.*',
cache: false,
onConsoleLog(log) {
if (log.match(/experimental|jit engine|emitted file|tailwind/i))
return false
},
globalSetup: [
'./playground/vitestGlobalSetup.ts',
'./scripts/vitestGlobalSetup.ts',
],
projects: [
{
test: {
name: 'unit',
exclude: [
'**/node_modules/**',
'**/dist/**',
'./playground/**/*.*',
'./playground-temp/**/*.*',
],
testTimeout: 20000,
},
},
{
test: {
name: 'serve',
env: {
PROJECT: 'serve',
},
include: ['./playground/**/*.spec.[tj]s'],
setupFiles: ['./playground/vitestSetup.ts'],
testTimeout: timeout,
hookTimeout: timeout,
globals: true,
},
},
{
test: {
name: 'build',
env: {
PROJECT: 'build',
},
include: ['./playground/**/*.spec.[tj]s'],
setupFiles: ['./playground/vitestSetup.ts'],
testTimeout: timeout,
hookTimeout: timeout,
globals: true,
},
},
],
testTimeout: 20000,
globalSetup: ['./scripts/vitestGlobalSetup.ts'],
},
esbuild: {
target: 'node14',
Expand Down
Loading