UNPKG

3.18 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4 return new (P || (P = Promise))(function (resolve, reject) {
5 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8 step((generator = generator.apply(thisArg, _arguments || [])).next());
9 });
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12const cli_1 = require("./cli");
13const testrunner_1 = require("./testrunner");
14const cli_ansi_1 = require("./cli-ansi");
15const flagpoleexecutionoptions_1 = require("../flagpoleexecutionoptions");
16const ansi = new cli_ansi_1.CliAnsi();
17exports.run = (suiteNames, tag) => __awaiter(void 0, void 0, void 0, function* () {
18 const suitesInProject = cli_1.Cli.config.getSuites();
19 let selectedSuites = [];
20 if (suiteNames.length) {
21 let regEx = (function () {
22 let arr = [];
23 suiteNames.forEach(name => {
24 arr.push(name.replace(/([.+^=!:${}()|\[\]\/\\])/g, "\\$1").replace("*", ".*"));
25 });
26 return new RegExp(`^${arr.join("|")}$`, "i");
27 })();
28 suitesInProject.forEach(function (suite) {
29 if (regEx.test(suite.name)) {
30 selectedSuites.push(suite);
31 }
32 });
33 }
34 else if (tag.length) {
35 suitesInProject.forEach(function (suite) {
36 if (suite.tags.includes(tag)) {
37 selectedSuites.push(suite);
38 }
39 });
40 }
41 else {
42 selectedSuites = suitesInProject;
43 }
44 return runSuites(selectedSuites);
45});
46const runSuites = (selectedSuites) => __awaiter(void 0, void 0, void 0, function* () {
47 const runner = new testrunner_1.TestRunner();
48 selectedSuites.forEach(function (suite) {
49 runner.addSuite(suite);
50 });
51 if (flagpoleexecutionoptions_1.FlagpoleExecution.opts.output == flagpoleexecutionoptions_1.FlagpoleOutput.console) {
52 if (runner.suites.length == 0) {
53 cli_1.Cli.log("Did not find any test suites to run.\n");
54 cli_1.Cli.exit(2);
55 }
56 ansi.writeLine();
57 const states = ["/", "—", "\\", "|"];
58 let stateIndex = 0;
59 let statusMessage = `Loading ${runner.suites.length} test suites...`;
60 let timer = setInterval(() => {
61 ansi.writeLine(ansi.cursorUp(), ansi.eraseLine(), `${states[stateIndex]} ${statusMessage}`);
62 stateIndex = stateIndex < states.length - 1 ? stateIndex + 1 : 0;
63 }, 100);
64 runner.subscribe((message) => {
65 statusMessage = message;
66 });
67 yield runner.runSpawn();
68 clearInterval(timer);
69 ansi.write(ansi.eraseLines(2));
70 }
71 else {
72 yield runner.runSpawn();
73 }
74 cli_1.Cli.exit(runner.exitCode);
75});
76//# sourceMappingURL=run.js.map
\No newline at end of file