@simplrjs/test-generator-cli
Version:
Tool to generate tests from cases.
46 lines • 7.39 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs-extra");
const path = require("path");
const logger_1 = require("./utils/logger");
const tests_generator_1 = require("./tests-generator");
const tests_helpers_1 = require("./tests-helpers");
const tests_cleanup_1 = require("./tests-cleanup");
const cli_arguments_1 = require("./cli-arguments");
function StartWatcher(testsCasesPath) {
return __awaiter(this, void 0, void 0, function* () {
return fs.watch(`${testsCasesPath}/`, (event, fileName) => __awaiter(this, void 0, void 0, function* () {
if (fileName.indexOf(tests_helpers_1.TESTS_DIR_NAME) === -1) {
logger_1.Logger.Info(`Test file was changed in "${testsCasesPath}/${fileName}".`);
const startBuild = logger_1.Logger.Info(`Generating tests for "${testsCasesPath}"...`);
yield tests_generator_1.TestsGenerator(testsCasesPath);
logger_1.Logger.Debug(`Generated tests after ${(Date.now() - startBuild)}ms`);
}
}));
});
}
((argumentsObject) => __awaiter(this, void 0, void 0, function* () {
const cwd = argumentsObject.path || process.cwd();
const testsCasesPath = tests_helpers_1.FixSep(path.join(cwd, tests_helpers_1.TESTS_DIR_NAME, tests_helpers_1.CASES_DIR_NAME));
logger_1.Logger.Info("Starting test generator...");
const startRemove = logger_1.Logger.Info(`Removing old tests from "${testsCasesPath}"...`);
yield tests_cleanup_1.TestsCleanup(testsCasesPath);
logger_1.Logger.Debug(`Removed old tests after ${(Date.now() - startRemove)}ms`);
const startBuild = logger_1.Logger.Info(`Generating tests for "${testsCasesPath}"...`);
yield tests_generator_1.TestsGenerator(testsCasesPath);
logger_1.Logger.Debug(`Generated tests after ${(Date.now() - startBuild)}ms`);
if (process.argv.indexOf("--watchAll") !== -1) {
logger_1.Logger.Info(`Started watching "${testsCasesPath}" tests.`);
StartWatcher(testsCasesPath);
}
}))(cli_arguments_1.CLIHandler);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQSwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLDJDQUF3QztBQUN4Qyx1REFBbUQ7QUFDbkQsbURBQXlFO0FBQ3pFLG1EQUErQztBQUMvQyxtREFBNkM7QUFHN0Msc0JBQTRCLGNBQXNCOztRQUM5QyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLGNBQWMsR0FBRyxFQUFFLENBQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzVELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsOEJBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsZUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsY0FBYyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLE1BQU0sVUFBVSxHQUFHLGVBQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLGNBQWMsTUFBTSxDQUFDLENBQUM7Z0JBQzlFLE1BQU0sZ0NBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDckMsZUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLENBQUM7UUFDTCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUFBO0FBRUQsQ0FBQyxDQUFPLGVBQW1DLEVBQUUsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsRCxNQUFNLGNBQWMsR0FBRyxzQkFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLDhCQUFjLEVBQUUsOEJBQWMsQ0FBQyxDQUFDLENBQUM7SUFFOUUsZUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLGVBQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLGNBQWMsTUFBTSxDQUFDLENBQUM7SUFDbEYsTUFBTSw0QkFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLGVBQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4RSxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixjQUFjLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLE1BQU0sZ0NBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxlQUFNLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLGVBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLGNBQWMsVUFBVSxDQUFDLENBQUM7UUFDM0QsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDTCxDQUFDLENBQUEsQ0FBQyxDQUFDLDBCQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcclxuXHJcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xyXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XHJcblxyXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiLi91dGlscy9sb2dnZXJcIjtcclxuaW1wb3J0IHsgVGVzdHNHZW5lcmF0b3IgfSBmcm9tIFwiLi90ZXN0cy1nZW5lcmF0b3JcIjtcclxuaW1wb3J0IHsgRml4U2VwLCBURVNUU19ESVJfTkFNRSwgQ0FTRVNfRElSX05BTUUgfSBmcm9tIFwiLi90ZXN0cy1oZWxwZXJzXCI7XHJcbmltcG9ydCB7IFRlc3RzQ2xlYW51cCB9IGZyb20gXCIuL3Rlc3RzLWNsZWFudXBcIjtcclxuaW1wb3J0IHsgQ0xJSGFuZGxlciB9IGZyb20gXCIuL2NsaS1hcmd1bWVudHNcIjtcclxuaW1wb3J0IHsgQ0xJQXJndW1lbnRzT2JqZWN0IH0gZnJvbSBcIi4vY2xpLWNvbnRyYWN0c1wiO1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gU3RhcnRXYXRjaGVyKHRlc3RzQ2FzZXNQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGZzLkZTV2F0Y2hlcj4ge1xyXG4gICAgcmV0dXJuIGZzLndhdGNoKGAke3Rlc3RzQ2FzZXNQYXRofS9gLCBhc3luYyAoZXZlbnQsIGZpbGVOYW1lKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGVOYW1lLmluZGV4T2YoVEVTVFNfRElSX05BTUUpID09PSAtMSkge1xyXG4gICAgICAgICAgICBMb2dnZXIuSW5mbyhgVGVzdCBmaWxlIHdhcyBjaGFuZ2VkIGluIFwiJHt0ZXN0c0Nhc2VzUGF0aH0vJHtmaWxlTmFtZX1cIi5gKTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRCdWlsZCA9IExvZ2dlci5JbmZvKGBHZW5lcmF0aW5nIHRlc3RzIGZvciBcIiR7dGVzdHNDYXNlc1BhdGh9XCIuLi5gKTtcclxuICAgICAgICAgICAgYXdhaXQgVGVzdHNHZW5lcmF0b3IodGVzdHNDYXNlc1BhdGgpO1xyXG4gICAgICAgICAgICBMb2dnZXIuRGVidWcoYEdlbmVyYXRlZCB0ZXN0cyBhZnRlciAkeyhEYXRlLm5vdygpIC0gc3RhcnRCdWlsZCl9bXNgKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuKGFzeW5jIChhcmd1bWVudHNPYmplY3Q6IENMSUFyZ3VtZW50c09iamVjdCkgPT4ge1xyXG4gICAgY29uc3QgY3dkID0gYXJndW1lbnRzT2JqZWN0LnBhdGggfHwgcHJvY2Vzcy5jd2QoKTtcclxuICAgIGNvbnN0IHRlc3RzQ2FzZXNQYXRoID0gRml4U2VwKHBhdGguam9pbihjd2QsIFRFU1RTX0RJUl9OQU1FLCBDQVNFU19ESVJfTkFNRSkpO1xyXG5cclxuICAgIExvZ2dlci5JbmZvKFwiU3RhcnRpbmcgdGVzdCBnZW5lcmF0b3IuLi5cIik7XHJcbiAgICBjb25zdCBzdGFydFJlbW92ZSA9IExvZ2dlci5JbmZvKGBSZW1vdmluZyBvbGQgdGVzdHMgZnJvbSBcIiR7dGVzdHNDYXNlc1BhdGh9XCIuLi5gKTtcclxuICAgIGF3YWl0IFRlc3RzQ2xlYW51cCh0ZXN0c0Nhc2VzUGF0aCk7XHJcbiAgICBMb2dnZXIuRGVidWcoYFJlbW92ZWQgb2xkIHRlc3RzIGFmdGVyICR7KERhdGUubm93KCkgLSBzdGFydFJlbW92ZSl9bXNgKTtcclxuXHJcbiAgICBjb25zdCBzdGFydEJ1aWxkID0gTG9nZ2VyLkluZm8oYEdlbmVyYXRpbmcgdGVzdHMgZm9yIFwiJHt0ZXN0c0Nhc2VzUGF0aH1cIi4uLmApO1xyXG4gICAgYXdhaXQgVGVzdHNHZW5lcmF0b3IodGVzdHNDYXNlc1BhdGgpO1xyXG4gICAgTG9nZ2VyLkRlYnVnKGBHZW5lcmF0ZWQgdGVzdHMgYWZ0ZXIgJHsoRGF0ZS5ub3coKSAtIHN0YXJ0QnVpbGQpfW1zYCk7XHJcblxyXG4gICAgaWYgKHByb2Nlc3MuYXJndi5pbmRleE9mKFwiLS13YXRjaEFsbFwiKSAhPT0gLTEpIHtcclxuICAgICAgICBMb2dnZXIuSW5mbyhgU3RhcnRlZCB3YXRjaGluZyBcIiR7dGVzdHNDYXNlc1BhdGh9XCIgdGVzdHMuYCk7XHJcbiAgICAgICAgU3RhcnRXYXRjaGVyKHRlc3RzQ2FzZXNQYXRoKTtcclxuICAgIH1cclxufSkoQ0xJSGFuZGxlcik7XHJcbiJdfQ==