Skip to content

Commit

Permalink
✨ add coverage config
Browse files Browse the repository at this point in the history
  • Loading branch information
dudeofawesome committed May 3, 2024
1 parent 77f8c1e commit fae24b3
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 18 deletions.
39 changes: 21 additions & 18 deletions packages/create-configs/src/steps/language-configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,17 @@ export async function set_package_type({

/** @private */
export function _generate_jest_config({
languages,
technologies,
}: Omit<CreateJestConfigOptions, 'overwrite'>): ConfigFile {
const deps = new Dependencies();
const config: string = ((ts: boolean, esm: boolean) => {
if (ts) return `ts-${esm ? 'esm' : 'cjs'}`;
else return 'js';
})(languages.includes('ts'), technologies.includes('esm'));
return {
content: stripIndent`
import { config } from '${deps.d.depend('@code-style/jest-configs')}/ts-${technologies.includes('esm') ? 'esm' : 'cjs'}';
import { config } from '${deps.d.depend('@code-style/jest-configs')}/${config}';
// eslint-disable-next-line import/no-default-export
export default config;
Expand All @@ -223,23 +228,21 @@ export async function create_jest_config({
technologies,
overwrite,
}: CreateJestConfigOptions): Promise<Dependencies> {
const deps = new Dependencies([], ['jest']);
if (languages.includes('ts')) {
const path = 'jest.config.mjs';
if (
await verify_missing({
path: [path, /^jest\.config\.(js|ts|mjs|cjs|json)$/u],
remove: overwrite,
})
) {
const config = _generate_jest_config({
languages,
technologies,
});

await create_file(path, await prettify(path, config.content));
deps.add(config.dependencies);
}
const deps = new Dependencies();
const path = 'jest.config.mjs';
if (
await verify_missing({
path: [path, /^jest\.config\.(js|ts|mjs|cjs|json)$/u],
remove: overwrite,
})
) {
const config = _generate_jest_config({
languages,
technologies,
});

await create_file(path, await prettify(path, config.content));
deps.add(config.dependencies);
}

return deps;
Expand Down
8 changes: 8 additions & 0 deletions packages/jest-configs/src/js.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { Config } from 'jest';
import { coverage } from './layers/coverage';

const config: Config = {
...coverage,
};

export default config;
13 changes: 13 additions & 0 deletions packages/jest-configs/src/layers/coverage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Config } from 'jest';

export const coverage: Config = {
collectCoverage: true,
coverageDirectory: './coverage',
coveragePathIgnorePatterns: [
'node_modules/',
'migrations/',
'mikro-orm\\.config\\.ts$',
'interfaces/',
'types/',
],
};
2 changes: 2 additions & 0 deletions packages/jest-configs/src/ts-cjs.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import type { JestConfigWithTsJest } from 'ts-jest';
import { coverage } from './layers/coverage';

const config: JestConfigWithTsJest = {
preset: 'ts-jest/presets/default',
...coverage,
};

export default config;
2 changes: 2 additions & 0 deletions packages/jest-configs/src/ts-esm.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import type { JestConfigWithTsJest } from 'ts-jest';
import { coverage } from './layers/coverage';

export const config: JestConfigWithTsJest = {
preset: 'ts-jest/presets/default-esm',
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
...coverage,
};

0 comments on commit fae24b3

Please sign in to comment.