UNPKG

muttley

Version:
64 lines 2.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); /** * Fake test runner for testing the test runner */ class FakeTestRunner { constructor() { this.tests = [ { file: 'game.t.js', suite: 'Player constructor', name: 'throws if no name', message: '', stack: [] }, { file: 'game.t.js', suite: 'Player constructor', name: 'accepts a name', message: '', stack: [] }, { file: 'game.t.js', suite: 'Player hit', name: 'reduces health', message: '', stack: [] }, { file: 'game.t.js', suite: 'Player hit', name: 'rejects negative value', message: 'does not throw', stack: [{ file: 'tests/game.t.ts', lineno: 27 }], }, ]; } findTestsP(filePath) { const filename = path_1.default.basename(filePath); // match the fake test cases to the filepath return Promise.resolve(this.tests.filter((testcase) => filename.indexOf(testcase.file) >= 0)); } runFileP(filePath, onStart, onPass, onFail, onEnd) { return new Promise(resolve => { setImmediate(onStart); this.tests .filter((test) => { return !test.message; }) .forEach((test) => { setImmediate(() => { onPass(test.suite, test.name, 0); }); }); this.tests .filter((test) => !!test.message) .forEach((test) => { setImmediate(() => { onFail({ suite: test.suite, name: test.name, fullMessage: test.message, message: test.message, stack: test.stack, }); }); }); const passCount = this.tests.filter((test) => !!test.message).length; setImmediate(() => { onEnd(passCount, this.tests.length - passCount); resolve(); }); }); } } exports.FakeTestRunner = FakeTestRunner; //# sourceMappingURL=test-runner.js.map