UNPKG

3.19 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.test = void 0;
4var tslib_1 = require("tslib");
5var common_1 = require("../common");
6function 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}
66exports.test = test;