UNPKG

@intuitionrobotics/ts-common

Version:
80 lines 3.44 kB
"use strict"; /* * ts-common is the basic building blocks of our typescript projects * * Copyright (C) 2020 Intuition Robotics * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 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 }); exports.runTestSuits = runTestSuits; exports.runTestSuit = runTestSuit; exports.assertNoTestErrors = assertNoTestErrors; const exceptions_1 = require("../core/exceptions"); const testResults = {}; function runTestSuits(testSuits) { return __awaiter(this, void 0, void 0, function* () { for (const testSuit of testSuits) { yield runTestSuit(testSuit); } }); } function runTestSuit(testSuit) { return __awaiter(this, void 0, void 0, function* () { const report = { label: testSuit.label, success: 0, failed: [] }; testResults[testSuit.key] = report; console.log(` Running: ${testSuit.label}`); for (const model of testSuit.models) { const result = yield testSuit.processor(model.input); if (model.expected === undefined || model.expected === result) { report.success++; continue; } report.failed.push(new exceptions_1.Exception(`Error in test #${testSuit.models.indexOf(model)} input: ${JSON.stringify(model.input)}\n -- Expected: ${model.expected}\n -- Actual: ${result}`)); } }); } function assertNoTestErrors() { let totalErrors = 0; console.log(); console.log("+-------------------------------+"); console.log("| RESULTS |"); console.log("+-------------------------------+"); Object.keys(testResults).forEach((key, index) => { const result = testResults[key]; console.log(); console.log(` + ${result.label}`); console.log(` Success: ${result.success}`); if (result.failed.length === 0) return; totalErrors += result.failed.length; console.log(` Errors: ${result.failed.length}`); result.failed.forEach(error => console.log(` ${error.message}`)); }); if (totalErrors > 0) process.exit(2); } //# sourceMappingURL=test-model.js.map