forked from vitest-dev/vitest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
context.ts
52 lines (43 loc) · 1.3 KB
/
context.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import type { ModuleGraph, ViteDevServer } from 'vite'
import type { Logger } from '../../../packages/vitest/src/node/logger'
import type { Vitest } from '../../../packages/vitest/src/node'
import type { StateManager } from '../../../packages/vitest/src/node/state'
import type { File, ResolvedConfig } from '../../../packages/vitest/src/types'
interface Context {
vitest: Vitest
output: string
}
export function getContext(): Context {
let output = ''
const config: Partial<ResolvedConfig> = {
root: '/vitest',
}
const moduleGraph: Partial<ModuleGraph> = {
getModuleById: () => undefined,
}
const server: Partial<ViteDevServer> = {
moduleGraph: moduleGraph as ModuleGraph,
}
const state: Partial<StateManager> = {
filesMap: new Map<string, File[]>(),
}
const context: Partial<Vitest> = {
state: state as StateManager,
config: config as ResolvedConfig,
server: server as ViteDevServer,
getProjectByTaskId: () => ({ getBrowserSourceMapModuleById: () => undefined }) as any,
snapshot: {
summary: { added: 100, _test: true },
} as any,
}
context.logger = {
ctx: context as Vitest,
log: (text: string) => output += `${text}\n`,
} as unknown as Logger
return {
vitest: context as Vitest,
get output() {
return output
},
}
}