Skip to content

Commit

Permalink
Merge branch 'main' into delm/feat/configurable-snapshot-dir
Browse files Browse the repository at this point in the history
  • Loading branch information
d3lm authored Dec 4, 2023
2 parents 9d6482b + eca25dc commit 5d5a452
Show file tree
Hide file tree
Showing 12 changed files with 62 additions and 57 deletions.
3 changes: 3 additions & 0 deletions docs/.vitepress/contributors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ const plainTeamMembers: CoreTeam[] = [
avatar: contributorsAvatars.AriPerkkio,
name: 'Ari Perkkiö',
github: 'AriPerkkio',
mastodon: 'https://elk.zone/m.webtoo.ls/@AriPerkkio',
twitter: 'ari_perkkio',
sponsor: 'https://github.com/sponsors/AriPerkkio',
title: 'A fullstack developer, working',
desc: 'Core team member of Vitest',
org: 'Cloudamite',
Expand Down
2 changes: 1 addition & 1 deletion docs/config/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1326,7 +1326,7 @@ Watermarks for statements, lines, branches and functions. See [istanbul document
#### coverage.processingConcurrency

- **Type:** `boolean`
- **Default:** `Math.min(20, os.cpu().length)`
- **Default:** `Math.min(20, os.cpus().length)`
- **Available for providers:** `'v8' | 'istanbul'`
- **CLI:** `--coverage.processingConcurrency=<number>`

Expand Down
2 changes: 1 addition & 1 deletion netlify.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[build.environment]
NODE_VERSION = "18"
NODE_VERSION = "20"
# don't need playwright for docs build
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1"

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"rollup-plugin-esbuild": "^6.1.0",
"rollup-plugin-license": "^3.2.0",
"simple-git-hooks": "^2.9.0",
"tsx": "^4.1.1",
"tsx": "^4.6.1",
"typescript": "^5.2.2",
"vite": "^5.0.0-beta.19",
"vitest": "workspace:*"
Expand Down
13 changes: 8 additions & 5 deletions packages/browser/src/client/runner.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { File, TaskResultPack, Test } from '@vitest/runner'
import type { File, TaskResultPack, Test, VitestRunner } from '@vitest/runner'
import type { ResolvedConfig } from 'vitest'
import { rpc } from './rpc'

Expand All @@ -11,7 +11,10 @@ interface CoverageHandler {
takeCoverage: () => Promise<unknown>
}

export function createBrowserRunner(original: any, coverageModule: CoverageHandler | null) {
export function createBrowserRunner(
original: { new(config: ResolvedConfig): VitestRunner },
coverageModule: CoverageHandler | null,
): { new(options: BrowserRunnerOptions): VitestRunner } {
return class BrowserTestRunner extends original {
public config: ResolvedConfig
hashMap = new Map<string, [test: boolean, timstamp: string]>()
Expand All @@ -23,7 +26,7 @@ export function createBrowserRunner(original: any, coverageModule: CoverageHandl
}

async onAfterRunTask(task: Test) {
await super.onAfterRunTest?.(task)
await super.onAfterRunTask?.(task)
task.result?.errors?.forEach((error) => {
console.error(error.message)
})
Expand All @@ -39,8 +42,8 @@ export function createBrowserRunner(original: any, coverageModule: CoverageHandl
}
}

async onAfterRunFiles() {
await super.onAfterRun?.()
async onAfterRunFiles(files: File[]) {
await super.onAfterRunFiles?.(files)
const coverage = await coverageModule?.takeCoverage?.()

if (coverage) {
Expand Down
5 changes: 4 additions & 1 deletion packages/vitest/src/integrations/browser/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,10 @@ export async function createBrowserServer(project: WorkspaceProject, configFile:
// browser never runs in middleware mode
server.middlewareMode = false

config.server = server
config.server = {
...config.server,
...server,
}
config.server.fs ??= {}
config.server.fs.allow = config.server.fs.allow || []
config.server.fs.allow.push(
Expand Down
11 changes: 9 additions & 2 deletions packages/vitest/src/node/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { ViteNodeRunner } from 'vite-node/client'
import { SnapshotManager } from '@vitest/snapshot/manager'
import type { CancelReason, File } from '@vitest/runner'
import { ViteNodeServer } from 'vite-node/server'
import type { ArgumentsType, CoverageProvider, OnServerRestartHandler, Reporter, ResolvedConfig, UserConfig, UserWorkspaceConfig, VitestRunMode } from '../types'
import type { ArgumentsType, Awaitable, CoverageProvider, OnServerRestartHandler, Reporter, ResolvedConfig, UserConfig, UserWorkspaceConfig, VitestRunMode } from '../types'
import { hasFailed, noop, slash, toArray } from '../utils'
import { getCoverageProvider } from '../integrations/coverage'
import type { BrowserProvider } from '../types/browser'
Expand Down Expand Up @@ -76,6 +76,7 @@ export class Vitest {
private _onClose: (() => Awaited<unknown>)[] = []
private _onSetServer: OnServerRestartHandler[] = []
private _onCancelListeners: ((reason: CancelReason) => Promise<void> | void)[] = []
private _poolClosePromise?: Awaitable<void>

async setServer(options: UserConfig, server: ViteDevServer, cliOptions: UserConfig) {
this.unregisterWatcher?.()
Expand Down Expand Up @@ -357,6 +358,10 @@ export class Vitest {
await this.runFiles(files)
}

// In run mode close pool as early as possible
if (!this.config.watch && this.pool?.close)
this._poolClosePromise = this.pool.close()

await this.reportCoverage(true)

if (this.config.watch)
Expand Down Expand Up @@ -780,7 +785,9 @@ export class Vitest {

if (this.pool) {
closePromises.push((async () => {
await this.pool?.close?.()
await (this._poolClosePromise || this.pool?.close?.())

this._poolClosePromise = undefined
this.pool = undefined
})())
}
Expand Down
10 changes: 0 additions & 10 deletions packages/vitest/src/node/pools/vm-threads.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,6 @@ export function createVmThreadsPool(ctx: Vitest, { execArgv, env, vmPath }: Pool
}
}

const Sequencer = ctx.config.sequence.sequencer
const sequencer = new Sequencer(ctx)

return async (specs, invalidates) => {
const configs = new Map<WorkspaceProject, ResolvedConfig>()
const getConfig = (project: WorkspaceProject): ResolvedConfig => {
Expand All @@ -134,13 +131,6 @@ export function createVmThreadsPool(ctx: Vitest, { execArgv, env, vmPath }: Pool
return config
}

const { shard } = ctx.config

if (shard)
specs = await sequencer.shard(specs)

specs = await sequencer.sort(specs)

const filesByEnv = await groupFilesByEnv(specs)
const promises = Object.values(filesByEnv).flat()
const results = await Promise.allSettled(promises
Expand Down
10 changes: 5 additions & 5 deletions packages/vitest/src/runtime/child.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ import { mockMap, moduleCache, startViteNode } from './execute'
import { createSafeRpc, rpcDone } from './rpc'
import { setupInspect } from './inspector'

try {
process.title = `node (vitest ${poolId})`
}
catch {}

async function init(ctx: ChildContext) {
const { config, workerId, providedContext } = ctx

process.env.VITEST_WORKER_ID = String(workerId)
process.env.VITEST_POOL_ID = String(poolId)

try {
process.title = `node (vitest ${poolId})`
}
catch {}

let setCancel = (_reason: CancelReason) => {}
const onCancel = new Promise<CancelReason>((resolve) => {
setCancel = resolve
Expand Down
2 changes: 1 addition & 1 deletion packages/vitest/src/runtime/mocker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ export class VitestMocker {
return {
...actual,
// your mocked methods
},
}
})`)}\n`,
)
}
Expand Down
2 changes: 1 addition & 1 deletion packages/vitest/src/types/coverage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export interface BaseCoverageOptions {

/**
* Concurrency limit used when processing the coverage results.
* Defaults to `Math.min(20, os.cpu().length)`
* Defaults to `Math.min(20, os.cpus().length)`
*/
processingConcurrency?: number
}
Expand Down
Loading

0 comments on commit 5d5a452

Please sign in to comment.