43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
|
const config = {
|
|||
|
// all ts or tsx files need to be transformed using jest-preprocess.js
|
|||
|
// Set up Babel config in jest-preprocess.js
|
|||
|
transform: {
|
|||
|
// Allow tests in TypeScript using the .ts or .tsx
|
|||
|
'^.+\\.[jt]sx?$': '<rootDir>/test-utils/jest-preprocess.js',
|
|||
|
},
|
|||
|
testRegex: '(/__tests__/.*(test|spec))\\.([tj]sx?)$',
|
|||
|
moduleDirectories: ['node_modules', __dirname],
|
|||
|
// Works like webpack rules. Tells Jest how to handle imports
|
|||
|
moduleNameMapper: {
|
|||
|
// Mock static file imports and assets which Jest can’t handle
|
|||
|
// stylesheets use the package identity-obj-proxy
|
|||
|
'.+\\.(css|styl|less|sass|scss)$': 'identity-obj-proxy',
|
|||
|
// Manual mock other files using file-mock.js
|
|||
|
'.+\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
|||
|
'<rootDir>/__mocks__/file-mock.js',
|
|||
|
// Mock SVG
|
|||
|
'\\.svg': '<rootDir>/__mocks__/svgr-mock.js',
|
|||
|
'^~/(.*)$': '<rootDir>/src/$1',
|
|||
|
},
|
|||
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|||
|
testPathIgnorePatterns: ['node_modules', '.cache', 'public'],
|
|||
|
// Gatsby includes un-transpiled ES6 code. Exclude the gatsby module.
|
|||
|
transformIgnorePatterns: ['node_modules/(?!(gatsby)/)'],
|
|||
|
globals: {
|
|||
|
__PATH_PREFIX__: '',
|
|||
|
},
|
|||
|
collectCoverageFrom: [
|
|||
|
'src/**/*.{js,jsx,ts,tsx}',
|
|||
|
'!<rootDir>/src/**/*.stories.{ts,tsx}',
|
|||
|
'!<rootDir>/src/**/__tests__/**/*',
|
|||
|
'!<rootDir>/src/components/**/index.ts',
|
|||
|
'!<rootDir>/node_modules/',
|
|||
|
'!<rootDir>/test-utils/',
|
|||
|
],
|
|||
|
testURL: 'http://localhost',
|
|||
|
setupFiles: ['<rootDir>/test-utils/loadershim.js', 'jest-localstorage-mock'],
|
|||
|
setupFilesAfterEnv: ['<rootDir>/test-utils/setup-test-env.ts'],
|
|||
|
};
|
|||
|
|
|||
|
module.exports = config;
|