tsd-lite-cli
Version:
Test runner for testing TypeScript typings. CLI over tsd-lite, a per-file version of tsd
50 lines (42 loc) • 1.11 kB
JavaScript
/** @typedef {import("./run-one").TestResult} TestResult */
import { runTest } from "./run-one.js"
/**
* @callback OnTestFinish
* @param {TestResult} result
* @param {number} index
* @returns {void}
*/
/**
* @callback OnSuiteFinish
* @param {TestResult[]} results
* @returns {void}
*/
/**
* Run a suite of test files and return a more friendly result format.
* Sequential version.
*
* @param {string[]} paths
* @param {Object} props
* @param {OnTestFinish} props.onTestFinish
* @param {OnSuiteFinish} props.onSuiteFinish
* @returns {void}
*
* @example
* runSuite(["/home/lorem/src/fn.test-d.ts"], {
* onTestFinish: (result, index) => {
* // print nicely formatted test result
* },
* onSuiteFinish: (results) => {
* // print nicely formatted summary
* },
* })
*/
export const runSuite = (paths, { onTestFinish, onSuiteFinish }) => {
const results = paths.map((item, index) => {
// TODO: async via worker threads maybe?
const result = runTest(item)
onTestFinish(result, index)
return result
})
onSuiteFinish(results)
}