From 7edea57bfd0e151292ad0a7ee83f5473f989cf75 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Fri, 15 May 2020 06:51:55 +0200 Subject: [PATCH 1/7] Add coverageProvider question --- packages/jest-cli/src/init/questions.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/jest-cli/src/init/questions.ts b/packages/jest-cli/src/init/questions.ts index 1473cb55382b..b1c6af06d286 100644 --- a/packages/jest-cli/src/init/questions.ts +++ b/packages/jest-cli/src/init/questions.ts @@ -24,6 +24,12 @@ const defaultQuestions: Array = [ name: 'coverage', type: 'confirm', }, + { + initial: false, + message: 'Do you want to use V8 based code coverage as coverageProvider?', + name: 'v8', + type: 'confirm', + }, { initial: false, message: 'Automatically clear mock calls and instances between every test?', From d03cb3925bf8cba61e78627c028994c0621fcea8 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Fri, 15 May 2020 07:05:55 +0200 Subject: [PATCH 2/7] Update coverageProvider question --- packages/jest-cli/src/init/questions.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/jest-cli/src/init/questions.ts b/packages/jest-cli/src/init/questions.ts index b1c6af06d286..21d3e68862d0 100644 --- a/packages/jest-cli/src/init/questions.ts +++ b/packages/jest-cli/src/init/questions.ts @@ -25,10 +25,14 @@ const defaultQuestions: Array = [ type: 'confirm', }, { - initial: false, - message: 'Do you want to use V8 based code coverage as coverageProvider?', - name: 'v8', - type: 'confirm', + choices: [ + {title: 'babel', value: 'babel'}, + {title: 'v8', value: 'v8'}, + ], + initial: 0, + message: 'which coverageProvider should be used to instrument code for coverage?', + name: 'coverageProvider', + type: 'select', }, { initial: false, From 2214847282a1bf9644b09f63267be42226030803 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Sat, 16 May 2020 20:58:38 +0200 Subject: [PATCH 3/7] Add tests for coverageProvider --- .../jest-cli/src/init/__tests__/init.test.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/jest-cli/src/init/__tests__/init.test.js b/packages/jest-cli/src/init/__tests__/init.test.js index 579ab04f24fc..bd3c5fbfa531 100644 --- a/packages/jest-cli/src/init/__tests__/init.test.js +++ b/packages/jest-cli/src/init/__tests__/init.test.js @@ -93,6 +93,28 @@ describe('init', () => { expect(evaluatedConfig).toEqual({coverageDirectory: 'coverage'}); }); + it('should create configuration for {coverageProvider: "babel"}', async () => { + prompts.mockReturnValueOnce({coverageProvider: 'babel'}); + + await init(resolveFromFixture('only_package_json')); + + const writtenJestConfig = fs.writeFileSync.mock.calls[0][1]; + const evaluatedConfig = eval(writtenJestConfig); + + expect(evaluatedConfig).toEqual({}); + }); + + it('should create configuration for {coverageProvider: "v8"}', async () => { + prompts.mockReturnValueOnce({coverageProvider: 'v8'}); + + await init(resolveFromFixture('only_package_json')); + + const writtenJestConfig = fs.writeFileSync.mock.calls[0][1]; + const evaluatedConfig = eval(writtenJestConfig); + + expect(evaluatedConfig).toEqual({coverageProvider: 'v8'}); + }); + it('should create configuration for {environment: "jsdom"}', async () => { prompts.mockReturnValueOnce({environment: 'jsdom'}); From 7eb28d70a2e27078a1e5c5a6e2648535f60c13b6 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Sat, 16 May 2020 21:10:54 +0200 Subject: [PATCH 4/7] Add entry to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5495a62f3f76..1693570322ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - `[jest-config]` Support config files exporting (`async`) `function`s ([#10001](https://github.com/facebook/jest/pull/10001)) - `[jest-cli, jest-core]` Add `--selectProjects` CLI argument to filter test suites by project name ([#8612](https://github.com/facebook/jest/pull/8612)) +- `[jest-cli, jest-init]` Add `coverageProvider` to `jest --init` prompts ([#10044](https://github.com/facebook/jest/pull/10044)) ### Fixes From e0750989523fed6f62d9a2e20cffab214f14d479 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Sat, 16 May 2020 22:44:34 +0200 Subject: [PATCH 5/7] Fix a typo --- packages/jest-cli/src/init/questions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-cli/src/init/questions.ts b/packages/jest-cli/src/init/questions.ts index 21d3e68862d0..b67bbcac1f4b 100644 --- a/packages/jest-cli/src/init/questions.ts +++ b/packages/jest-cli/src/init/questions.ts @@ -30,7 +30,7 @@ const defaultQuestions: Array = [ {title: 'v8', value: 'v8'}, ], initial: 0, - message: 'which coverageProvider should be used to instrument code for coverage?', + message: 'Which coverageProvider should be used to instrument code for coverage?', name: 'coverageProvider', type: 'select', }, From 7a2a0b79883582be819a555c9043e8b1b8844348 Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Wed, 27 May 2020 05:45:23 +0200 Subject: [PATCH 6/7] Update config file --- packages/jest-cli/src/init/generate_config_file.ts | 8 +++++++- packages/jest-cli/src/init/index.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/jest-cli/src/init/generate_config_file.ts b/packages/jest-cli/src/init/generate_config_file.ts index 36c19bdf3759..c968e2985e19 100644 --- a/packages/jest-cli/src/init/generate_config_file.ts +++ b/packages/jest-cli/src/init/generate_config_file.ts @@ -35,7 +35,7 @@ const generateConfigFile = ( results: Record, generateEsm = false, ): string => { - const {coverage, clearMocks, environment} = results; + const {coverage, coverageProvider, clearMocks, environment} = results; const overrides: Record = {}; @@ -45,6 +45,12 @@ const generateConfigFile = ( }); } + if (coverageProvider === 'v8') { + Object.assign(overrides, { + coverageProvider: 'v8', + }); + } + if (environment === 'node') { Object.assign(overrides, { testEnvironment: 'node', diff --git a/packages/jest-cli/src/init/index.ts b/packages/jest-cli/src/init/index.ts index 7a92a29ec0d7..c39ca0b68f69 100644 --- a/packages/jest-cli/src/init/index.ts +++ b/packages/jest-cli/src/init/index.ts @@ -28,6 +28,7 @@ const { type PromptsResults = { clearMocks: boolean; coverage: boolean; + coverageProvider: boolean; environment: boolean; scripts: boolean; }; From 0542e76e20d6fb07d27cbc330b3440930fde541d Mon Sep 17 00:00:00 2001 From: Mohamed Abdel Nasser Date: Thu, 28 May 2020 21:13:22 +0200 Subject: [PATCH 7/7] Update CoverageProvider question --- packages/jest-cli/src/init/__tests__/init.test.js | 4 ++-- packages/jest-cli/src/init/questions.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/jest-cli/src/init/__tests__/init.test.js b/packages/jest-cli/src/init/__tests__/init.test.js index bd3c5fbfa531..74012354c51a 100644 --- a/packages/jest-cli/src/init/__tests__/init.test.js +++ b/packages/jest-cli/src/init/__tests__/init.test.js @@ -100,7 +100,7 @@ describe('init', () => { const writtenJestConfig = fs.writeFileSync.mock.calls[0][1]; const evaluatedConfig = eval(writtenJestConfig); - + // should modify when the default coverageProvider will be changed to "v8" expect(evaluatedConfig).toEqual({}); }); @@ -111,7 +111,7 @@ describe('init', () => { const writtenJestConfig = fs.writeFileSync.mock.calls[0][1]; const evaluatedConfig = eval(writtenJestConfig); - + // should modify when the default coverageProvider will be changed to "v8" expect(evaluatedConfig).toEqual({coverageProvider: 'v8'}); }); diff --git a/packages/jest-cli/src/init/questions.ts b/packages/jest-cli/src/init/questions.ts index b67bbcac1f4b..ee192c697875 100644 --- a/packages/jest-cli/src/init/questions.ts +++ b/packages/jest-cli/src/init/questions.ts @@ -30,7 +30,7 @@ const defaultQuestions: Array = [ {title: 'v8', value: 'v8'}, ], initial: 0, - message: 'Which coverageProvider should be used to instrument code for coverage?', + message: 'Which coverageProvider should be used to collect coverage?', name: 'coverageProvider', type: 'select', },