diff --git a/CHANGELOG.md b/CHANGELOG.md index aa078a389e3e..227365427b90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ - `[jest-resolve-dependencies]`: Migrate to TypeScript ([#7922](https://github.com/facebook/jest/pull/7922)) - `[expect]`: Migrate to TypeScript ([#7919](https://github.com/facebook/jest/pull/7919)) - `[jest-circus]`: Migrate to TypeScript ([#7916](https://github.com/facebook/jest/pull/7916)) +- `[jest-phabricator]`: Migrate to TypeScript ([#7965](https://github.com/facebook/jest/pull/7965)) ### Performance diff --git a/packages/jest-phabricator/package.json b/packages/jest-phabricator/package.json index b711d648af56..f1000201d15c 100644 --- a/packages/jest-phabricator/package.json +++ b/packages/jest-phabricator/package.json @@ -6,6 +6,10 @@ "url": "https://github.com/facebook/jest.git", "directory": "packages/jest-phabricator" }, + "types": "build/index.d.ts", + "dependencies": { + "@jest/types": "^24.1.0" + }, "engines": { "node": ">= 6" }, diff --git a/packages/jest-phabricator/src/index.js b/packages/jest-phabricator/src/index.ts similarity index 69% rename from packages/jest-phabricator/src/index.js rename to packages/jest-phabricator/src/index.ts index 5c02ee4ae1b3..0c1faa1cac99 100644 --- a/packages/jest-phabricator/src/index.js +++ b/packages/jest-phabricator/src/index.ts @@ -3,20 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * @flow */ -import type { - AggregatedResult, - AggregatedResultWithoutCoverage, - CoverageMap, -} from 'types/TestResult'; +import {TestResult} from '@jest/types'; -type PhabricatorReport = AggregatedResultWithoutCoverage & { - coverageMap?: ?CoverageMap, -}; - -function summarize(coverageMap: CoverageMap) { +function summarize(coverageMap: TestResult.CoverageMap) { const summaries = Object.create(null); coverageMap.files().forEach(file => { @@ -41,8 +32,9 @@ function summarize(coverageMap: CoverageMap) { return summaries; } -module.exports = function(results: AggregatedResult): PhabricatorReport { - // $FlowFixMe: This should work, but it does not. +module.exports = function( + results: TestResult.AggregatedResult, +): TestResult.AggregatedResult { return { ...results, coverageMap: results.coverageMap && summarize(results.coverageMap), diff --git a/packages/jest-phabricator/tsconfig.json b/packages/jest-phabricator/tsconfig.json new file mode 100644 index 000000000000..7a7b7a460af1 --- /dev/null +++ b/packages/jest-phabricator/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "build" + }, + "references": [ + { + "path": "../jest-types" + } + ] +} diff --git a/packages/jest-types/src/TestResult.ts b/packages/jest-types/src/TestResult.ts index 841064692ff1..857751e6a9f0 100644 --- a/packages/jest-types/src/TestResult.ts +++ b/packages/jest-types/src/TestResult.ts @@ -52,10 +52,10 @@ export type CoverageSummary = { }; export type FileCoverage = { - getLineCoverage: () => Object; + getLineCoverage: () => {[line: string]: string}; getUncoveredLines: () => Array; - getBranchCoverageByLine: () => Object; - toJSON: () => Object; + getBranchCoverageByLine: () => {[line: string]: string}; + toJSON: () => {[line: string]: string}; merge: (other: Object) => undefined; computeSimpleTotals: (property: string) => FileCoverageTotal; computeBranchTotals: () => FileCoverageTotal;