Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
Something went wrong. Try again.
1.6 kB · 61 lines
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import type { TestProject } from 'vitest/node'import assert from 'node:assert/strict'import { readFile } from 'node:fs/promises'
declare module 'vitest' { interface ProvidedContext { globalSetup: boolean globalSetupOverridden: boolean invalidValue: unknown projectConfigValue: boolean globalConfigValue: boolean
providedConfigValue: string }}
export function setup({ provide }: TestProject) { provide('globalSetup', true) provide('globalSetupOverridden', false) try { provide('invalidValue', () => {}) throw new Error('Should throw') } catch (err: any) { assert.equal(err.message, 'Cannot provide "invalidValue" because it\'s not serializable.') assert.match(err.cause.message, /could not be cloned/) assert.equal(err.cause.name, 'DataCloneError') }}
let teardownCalled = false
export async function teardown() { teardownCalled = true const results = JSON.parse(await readFile('./results.json', 'utf-8'))
try { assert.ok(results.success) assert.equal(results.numTotalTestSuites, 20) assert.equal(results.numTotalTests, 25) assert.equal(results.numPassedTests, 25) assert.ok(results.coverageMap)
const shared = results.testResults.filter((r: any) => r.name.includes('space_shared/test.spec.ts'), )
assert.equal(shared.length, 2) } catch (err) { console.error(err) // oxlint-disable-next-line no-console console.dir(results, { depth: null }) process.exit(1) }}
process.on('beforeExit', () => { if (!teardownCalled) { console.error('teardown was not called') process.exitCode = 1 }})