turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
39 lines (33 loc) • 1.09 kB
text/typescript
import { Gulp } from "gulp";
import { AbsPosixPath } from "../types";
import { TaskFunction } from "../utils/gulp-task-function";
import { getCommand as getMochaCommand } from "../utils/mocha";
import * as nyc from "../utils/nyc";
import { NycReporter } from "../utils/nyc";
import { MochaOptions, resolveMochaOptions } from "./mocha";
export interface NycOptions {
test: MochaOptions;
rootDir: AbsPosixPath;
tempDir: AbsPosixPath;
reportDir: AbsPosixPath;
reporters: NycReporter[];
}
export function generateTask(gulp: Gulp, options: NycOptions): TaskFunction {
const testCommand: string[] = getMochaCommand(resolveMochaOptions(options.test));
const cwd: AbsPosixPath = options.rootDir;
const task: TaskFunction = async function (): Promise<void> {
return nyc.run({
cwd,
command: testCommand,
reporters: options.reporters,
reportDir: options.reportDir,
tempDir: options.tempDir,
colors: true,
});
};
task.displayName = getTaskName();
return task;
}
export function getTaskName(): string {
return "_:coverage";
}