sourcegraph/.mocharc.js
Quinn Slack ae5325e432
switch from jest to vitest for faster, simpler tests (#57886)
Replaces our usage of jest with vitest. Also removes the babel transpiler. This simplifies our test configuration by a lot, makes tests run 10% faster, and makes further modernizations to our build/test stuff possible (such as using vite for frontend builds).

This removes some of the junit exporting for Buildkite, and the vitest bazel defs don't really cleanly implement bazel testing guidelines (like sharding). But vitest is only used for unit tests (all integration/e2e/regression tests have always run in mocha), so none of them are very slow anyway.

## Codemods for vitest imports

fastmod -e js,ts,tsx @jest/globals vitest client/ dev/release/
fastmod -e js,ts,tsx 'jest\.(\w+)\(' 'vi.$1(' client/ dev/release/
fastmod -e js,ts,tsx 'jest,' 'vi,' client/ dev/release/
fastmod -e js,ts,tsx 'jest }' 'vi }' client/ dev/release/
git diff --diff-filter=M --name-only | xargs pnpm exec prettier --write
2023-11-05 21:57:04 -10:00

20 lines
778 B
JavaScript

const IS_BAZEL = !!(process.env.JS_BINARY__TARGET || process.env.BAZEL_BINDIR || process.env.BAZEL_TEST)
const rootDir = IS_BAZEL ? process.cwd() : __dirname
module.exports = {
require: [
...(IS_BAZEL ? [] : ['ts-node/register/transpile-only']),
'abort-controller/polyfill',
rootDir + '/client/testing/src/fetch',
rootDir + '/client/shared/dev/suppressPollyErrors',
],
reporter: rootDir + '/client/shared/dev/customMochaSpecReporter.js',
extension: IS_BAZEL ? ['js'] : ['js', 'ts'],
// 1 minute test timeout. This must be greater than the default Puppeteer
// command timeout of 30s in order to get the stack trace to point to the
// Puppeteer command that failed instead of a cryptic test timeout
// location.
timeout: '60s',
slow: '2s',
}