@tapjs/run
Version:
Command-line interface for the node-tap runner
21 lines • 838 B
JavaScript
import { createWriteStream } from 'fs';
import { mkdirpSync } from 'mkdirp';
import { dirname, resolve } from 'path';
// Always write to .tap/test-results, plus the config if set
export const outputDir = (t, config) => {
const outputDir = config.get('output-dir');
const resultsDir = resolve(config.projectRoot, '.tap/test-results');
t.on('spawn', subtest => pipes(subtest, resultsDir, outputDir));
};
const pipes = (subtest, resultsDir, outputDir) => {
if (outputDir && outputDir !== resultsDir) {
pipeToDir(subtest, outputDir);
}
pipeToDir(subtest, resultsDir);
};
const pipeToDir = (subtest, dir) => {
const out = resolve(dir, subtest.name + '.tap');
mkdirpSync(dirname(out));
subtest.on('process', proc => proc.stdout.pipe(createWriteStream(out)));
};
//# sourceMappingURL=output-dir.js.map