diff --git a/types/karma-remap-coverage/index.d.ts b/types/karma-remap-coverage/index.d.ts new file mode 100644 index 0000000000..93a8458566 --- /dev/null +++ b/types/karma-remap-coverage/index.d.ts @@ -0,0 +1,31 @@ +// Type definitions for karma-remap-coverage 0.1 +// Project: https://github.com/sshev/karma-remap-coverage#readme +// Definitions by: Piotr Błażejewicz (Peter Blazejewicz) +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 3.2 + +/// + +import 'karma'; + +declare module 'karma' { + interface ConfigOptions { + /** + * Key-value pairs where key is report type and value - path to file/dir where to save it. + * Reporters like `text-summary`, `text-lcov` and `teamcity` can print out to console as well + * - in this case just provide any falsy value instead of path. + * + * @example + * ```ts + * 'text-summary': null, // to show summary in console + * html: './coverage/html', + * ``` + * + * {@link https://github.com/sshev/karma-remap-coverage#remapcoveragereporter-format } + */ + remapCoverageReporter?: KarmaRemapCoverageReporter; + } + + // remapped reporter types to key-value pairs + type KarmaRemapCoverageReporter = Partial>; +} diff --git a/types/karma-remap-coverage/karma-remap-coverage-tests.ts b/types/karma-remap-coverage/karma-remap-coverage-tests.ts new file mode 100644 index 0000000000..52d90ad255 --- /dev/null +++ b/types/karma-remap-coverage/karma-remap-coverage-tests.ts @@ -0,0 +1,28 @@ +import { Config } from 'karma'; + +module.exports = (config: Config) => + config.set({ + files: ['./entry-module.spec.ts'], + preprocessors: { + './entry-module.spec.ts': ['webpack', 'sourcemap'], + './entry-module.ts': ['coverage'], + }, + // add both "karma-coverage" and "karma-remap-coverage" reporters + reporters: ['progress', 'coverage', 'remap-coverage'], + + // save interim raw coverage report in memory + coverageReporter: { + type: 'in-memory', + }, + + // define where to save final remaped coverage reports + remapCoverageReporter: { + 'text-summary': null, + lcov: undefined, + html: './coverage/html', + cobertura: './coverage/cobertura.xml', + }, + + // make sure both reporter plugins are loaded + plugins: ['karma-coverage', 'karma-remap-coverage'], + }); diff --git a/types/karma-remap-coverage/tsconfig.json b/types/karma-remap-coverage/tsconfig.json new file mode 100644 index 0000000000..a8a62a5af6 --- /dev/null +++ b/types/karma-remap-coverage/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "karma-remap-coverage-tests.ts" + ] +} diff --git a/types/karma-remap-coverage/tslint.json b/types/karma-remap-coverage/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/karma-remap-coverage/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }