1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.test = void 0;
|
4 | var tslib_1 = require("tslib");
|
5 | var common_1 = require("../common");
|
6 | function test(args) {
|
7 | if (args === void 0) { args = {}; }
|
8 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
9 | var silent, watch, log, dir, _a, flags, _b, suffix, pattern, cmd, done, res, error_1;
|
10 | return tslib_1.__generator(this, function (_c) {
|
11 | switch (_c.label) {
|
12 | case 0:
|
13 | silent = args.silent, watch = args.watch;
|
14 | log = common_1.getLog(silent);
|
15 | _a = args.dir;
|
16 | if (_a) return [3, 2];
|
17 | return [4, common_1.paths.closestParentOf('package.json')];
|
18 | case 1:
|
19 | _a = (_c.sent());
|
20 | _c.label = 2;
|
21 | case 2:
|
22 | dir = _a;
|
23 | if (!dir) {
|
24 | return [2, common_1.result.fail("A module root with [package.json] could not be found.")];
|
25 | }
|
26 | flags = '';
|
27 | flags += "--require ts-node/register \\";
|
28 | if (watch) {
|
29 | flags += "--reporter min \\";
|
30 | flags += "--watch-extensions ts,tsx \\";
|
31 | flags += "--watch \\";
|
32 | }
|
33 | _b = args.suffix, suffix = _b === void 0 ? 'TEST,test' : _b;
|
34 | suffix = suffix.includes(',') ? "{" + suffix + "}" : suffix;
|
35 | pattern = "src/**/*." + suffix + ".ts{,x}";
|
36 | if (!watch) {
|
37 | log.info(pattern);
|
38 | }
|
39 | cmd = "\n export NODE_ENV=test\n export TS_NODE_TRANSPILE_ONLY=true\n export TS_NODE_FAST=true\n export TS_NODE_COMPILER_OPTIONS='{ \"module\": \"commonjs\" }'\n \n mocha \\\n " + flags + "\n '" + pattern + "' \\\n ";
|
40 | done = function (res) {
|
41 | return res.code === 0 ? res : common_1.result.fail("Tests failed.", res.code);
|
42 | };
|
43 | _c.label = 3;
|
44 | case 3:
|
45 | _c.trys.push([3, 5, , 6]);
|
46 | return [4, common_1.exec.cmd.run(cmd, { silent: silent, cwd: common_1.fs.resolve(dir) })];
|
47 | case 4:
|
48 | res = _c.sent();
|
49 | if (!res.ok && res.errors.some(function (line) { return line.includes('Error: No test files found'); })) {
|
50 | log.info("No tests found.\n");
|
51 | return [2, done({ ok: true, code: 0 })];
|
52 | }
|
53 | if (!res.ok && res.errors.length > 0) {
|
54 | res.errors.forEach(function (line) { return log.info(line); });
|
55 | log.info();
|
56 | }
|
57 | return [2, done(res)];
|
58 | case 5:
|
59 | error_1 = _c.sent();
|
60 | return [2, common_1.result.fail(error_1)];
|
61 | case 6: return [2];
|
62 | }
|
63 | });
|
64 | });
|
65 | }
|
66 | exports.test = test;
|