avajs/ava

Allow ignoring a resolved configuration

tommy-mitchell opened this issue · 1 comments

Feature Request

AVA should support a way to ignore a resolved configuration, for example a (mono-)repo's ava.config.js.

Possible solutions:

  • Have configurations in a directory take precedence over a parent configuration (e.g. "ava" field in a package.json and a root ava.config.json)
  • Add a root: boolean option to configs that specifies not to search for parent configurations
  • Add a CLI flag to ignore parent configurations (e.g. npx ava --ignore-parent-configs)
  • If the resolved configuration contains the current test in its "ignores", skip it

Rationale

I'm trying to update the examples to AVA 6 (#2993), but they resolve the repo's ava.config.js when trying to run them:

…/examples/endpoint-testing
$ npx ava
  ⚠ Using configuration from …/ava.config.js

  ✘ Couldn’t find any files to test

$ npx ava test.js
  ⚠ Using configuration from …/ava.config.js

  ✔ get /user
  ─

  1 tests passed

The TypeScript examples have a custom config:

// package.json
"ava": {
    "typescript": {
        "compile": "tsc",
        "rewritePaths": {
            "source/": "build/"
        }
    }
}

This results in the tests failing due to conflicting configs:

…/examples/typescript-basic
$ npx ava

  ✘ Conflicting configuration in ../../ava.config.js and package.json

Attempting to ignore the examples in ava.config.js doesn't work:

- files: ['test/**', '!test/**/{fixtures,helpers}/**', ...skipWatchMode],
+ files: ['test/**', '!test/**/{fixtures,helpers}/**', '!examples', ...skipWatchMode],

Should the TypeScript examples switch to an ava.config.js file instead?