forked from netlify/build
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathava.config.js
36 lines (29 loc) · 1.01 KB
/
ava.config.js
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
import fs from 'fs'
import path from 'path'
import process from 'process'
// eslint-disable-next-line n/no-unpublished-import
import { isCI } from 'ci-info'
// `tests-metadata.json` is created by running `npm run test:measure`
// eslint-disable-next-line n/no-sync
const testData = JSON.parse(fs.readFileSync('tests-metadata.json'))
const getOrder = (file) => {
const fileRelative = path.relative(process.cwd(), file).replace(/\\/g, '/')
if (testData[fileRelative]) {
return testData[fileRelative].order
}
console.warn(`Missing test metadata for ${fileRelative}`)
return Number.MAX_SAFE_INTEGER
}
const sortTestFiles = (file1, file2) => getOrder(file1) - getOrder(file2)
const config = {
files: ['packages/**/tests/*.{cjs,mjs,js}', 'packages/**/tests/**/tests.{cjs,mjs,js}'],
verbose: true,
timeout: '120s',
workerThreads: false,
environmentVariables: {
FORCE_COLOR: '1',
},
// we only sort in CI to split efficiently across machines
...(isCI && { sortTestFiles }),
}
export default config