package ava import "strings" // AVA Config Schema // // Configuration Schema for the JavaScript test runner AVA #Schema: { @jsonschema(schema="http://json-schema.org/draft-07/schema#") @jsonschema(id="https://json.schemastore.org/ava.json") close({ files?: #."array-of-paths" ignoredByWatcher?: #."array-of-paths" match?: #."array-of-paths" // Defaults to `true` to cache compiled files under `node_modules/.cache/ava.` // If `false`, files are cached in a temporary directory instead cache?: bool // Max number of test files running at the same time (default: CPU cores) concurrency?: number // Use worker threads to run tests (enabled by default). If `false`, tests will // run in child processes workerThreads?: bool // Stop running further tests once a test fails failFast?: bool // If `false`, does not fail a test if it doesn't run assertions failWithoutAssertions?: bool // environment variables // // Specifies environment variables to be made available to the tests. The // environment variables defined here override the ones from `process.env` environmentVariables?: [string]: string // if `true`, prevents parallel execution of tests within a file serial?: bool // If `true`, enables the TAP reporter tap?: bool // If `true`, enables verbose output (though currently non-verbose output is not supported) verbose?: bool snapshotDir?: #path // Extensions of test files. Setting this overrides the default `["cjs", "mjs", // "js"]` value, so make sure to include those extensions in the list. // Experimentally you can configure how files are loaded extensions?: matchN(>=1, [ #."array-of-strings", { {[=~"^(c|m)?js$"]: true} {[!~"^(c|m)?js$"]: "commonjs" | "module"} } ]) require?: #."array-of-paths" // Timeouts in AVA behave differently than in other test frameworks. AVA resets // a timer after each test, forcing tests to quit if no new test results were // received within the specified timeout. This can be used to handle stalled // tests. See our timeout documentation for more options timeout?: matchN(>=1, [>=0, =~"^(\\d+)(s|m)$"]) nodeArguments?: #."array-of-strings" // If `false`, disable parallel builds (default: `true`) utilizeParallelBuilds?: bool // configuration // // Configures @ava/typescript for projects that precompile TypeScript. // Alternatively, you can use `ts-node` to do live testing without transpiling, // in which case you shouldn't use the `typescript` property typescript?: { extensions?: #."array-of-paths" // paths // // AVA searches your entire project for `*.js`, `*.cjs`, `*.mjs` and `*.ts` // files (or other extensions you've configured). It will ignore such files // found in the `rewritePaths` targets (e.g. `build/`). If you use more // specific paths, for instance `build/main/`, you may need to change AVA's // `files` configuration to ignore other directories. Paths are relative to // your project directory rewritePaths?: { {[=~"/$"]: =~"/$"} ... } // If `false`, AVA will assume you have already compiled your project. If set to // `'tsc'`, AVA will run the TypeScript compiler before running your tests. // This can be inefficient when using AVA in watch mode compile?: false | "tsc" ... } }) #: "array-of-paths": [...#path] #: "array-of-strings": [...string] #path: strings.MinRunes(1) }