1 | const watch = require('./watch');
|
2 | const mocha = require('./mocha');
|
3 | const cover = require('./cover');
|
4 |
|
5 | module.exports = async (argv = {}) => {
|
6 | let files;
|
7 | const watcher = (async function*() {
|
8 | for await (const _files of watch(argv)) {
|
9 | files = _files;
|
10 | yield files
|
11 | }
|
12 | })();
|
13 | const run = async () => {
|
14 | const { failures } = await mocha(argv, files);
|
15 | if (failures && failures.length) {
|
16 | const error = new Error(`${failures.length} failed`);
|
17 | error.failures = failures;
|
18 | throw error;
|
19 | }
|
20 | cover(argv);
|
21 | };
|
22 | return { watcher, run };
|
23 | };
|