UNPKG

@typed/test

Version:
65 lines 2.92 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const typeCheckInAnotherProcess_1 = require("../typescript/typeCheckInAnotherProcess"); const Results_1 = require("./Results"); const runBrowserTests_1 = require("./runBrowserTests"); const runNodeTests_1 = require("./runNodeTests"); const defaultOptions = { mode: 'node', files: [], timeout: 2000, browser: 'chrome-headless', keepAlive: false, typeCheck: false, watch: false, webpackConfiguration: x => x, }; const defaultLogger = { log: (x) => Promise.resolve(console.log(x)), error: (x) => Promise.resolve(console.error(x)), clear: () => Promise.resolve(console.clear()), }; class TestRunner { constructor(userOptions, previousResults, cwd = process.cwd(), logger) { this.runTests = (metadata) => __awaiter(this, void 0, void 0, function* () { const { run, options, cwd, logger } = this; const { typeCheck } = options; const sourcePaths = Array.from(new Set(metadata.map(x => x.filePath))); const [testResults, processResults = { exitCode: 0 }] = yield Promise.all([ run(options, cwd, logger, metadata), typeCheck ? logger .log('Typechecking...') .then(() => typeCheckInAnotherProcess_1.typecheckInAnotherProcess(cwd, sourcePaths)) .then(results => logger.log('Typechecking complete.').then(() => results)) : Promise.resolve(void 0), ]); return [testResults, processResults]; }); this.setLogger = (logger) => { this.logger = logger; }; const options = Object.assign(Object.assign({}, defaultOptions), userOptions); this.logger = logger || defaultLogger; this.cwd = cwd; this.options = options; this.results = previousResults || new Results_1.Results(); if (options.mode === 'node') { this.run = runNodeTests_1.runNodeTests; } else { this.run = runBrowserTests_1.runBrowserTests; } } } exports.TestRunner = TestRunner; //# sourceMappingURL=TestRunner.js.map