From 673672173cf0da159e0056eac19bb5e2434c7fc9 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Mon, 19 Mar 2018 23:30:59 -0500 Subject: [PATCH] Coverage option for editor support When using the Jest extension in vscode, running coverage is often slow so it would be nice to be able to turn it on and off as needed. Add a coverage option to the runner. --- CHANGELOG.md | 1 + packages/jest-editor-support/src/Runner.js | 3 +++ .../src/__tests__/runner.test.js | 13 +++++++++++++ packages/jest-editor-support/src/types.js | 1 + 4 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a985276ab137..5f5460e88f42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Features +* `[jest-editor-support]`: Add `coverage` option to runner * `[jest-jasmine2]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments diff --git a/packages/jest-editor-support/src/Runner.js b/packages/jest-editor-support/src/Runner.js index 4acfa3873b8e..409d1174f2e4 100644 --- a/packages/jest-editor-support/src/Runner.js +++ b/packages/jest-editor-support/src/Runner.js @@ -66,6 +66,9 @@ export default class Runner extends EventEmitter { if (this.options.testFileNamePattern) { args.push(this.options.testFileNamePattern); } + if (this.options.coverage) { + args.push('--coverage'); + } const options = { shell: this.options.shell, diff --git a/packages/jest-editor-support/src/__tests__/runner.test.js b/packages/jest-editor-support/src/__tests__/runner.test.js index 3253d1be9150..289de59722d3 100644 --- a/packages/jest-editor-support/src/__tests__/runner.test.js +++ b/packages/jest-editor-support/src/__tests__/runner.test.js @@ -180,6 +180,19 @@ describe('Runner', () => { expect((createProcess: any).mock.calls[0][1]).toContain('--watch'); }); + it('calls createProcess with the --coverage arg when provided', () => { + const expected = '--coverage'; + + const workspace: any = {}; + const options = {coverage: true}; + const sut = new Runner(workspace, options); + sut.start(false); + + const args = (createProcess: any).mock.calls[0][1]; + const index = args.indexOf(expected); + expect(index).not.toBe(-1); + }); + it('calls createProcess with the --testNamePattern arg when provided', () => { const expected = 'testNamePattern'; diff --git a/packages/jest-editor-support/src/types.js b/packages/jest-editor-support/src/types.js index 22debbe9296d..e8708eb2133f 100644 --- a/packages/jest-editor-support/src/types.js +++ b/packages/jest-editor-support/src/types.js @@ -20,6 +20,7 @@ import type {ChildProcess} from 'child_process'; import type ProjectWorkspace from './project_workspace'; export type Options = { + coverage?: boolean, createProcess?: ( workspace: ProjectWorkspace, args: Array,