jest.config.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. module.exports = {
  2. testEnvironment: 'jsdom',
  3. preset: 'ts-jest',
  4. setupFilesAfterEnv: ['./scripts/setupJestEnv.ts'],
  5. transform: {
  6. '^.+\\.tsx?$': [
  7. 'ts-jest',
  8. {
  9. tsconfig: {
  10. target: 'esnext',
  11. sourceMap: true
  12. }
  13. }
  14. ]
  15. },
  16. globals: {
  17. __DEV__: true,
  18. __TEST__: true,
  19. __VERSION__: require('./package.json').version,
  20. __BROWSER__: false,
  21. __GLOBAL__: false,
  22. __ESM_BUNDLER__: true,
  23. __ESM_BROWSER__: false,
  24. __NODE_JS__: true,
  25. __SSR__: true,
  26. __FEATURE_OPTIONS_API__: true,
  27. __FEATURE_SUSPENSE__: true,
  28. __FEATURE_PROD_DEVTOOLS__: false,
  29. __COMPAT__: true
  30. },
  31. coverageDirectory: 'coverage',
  32. coverageReporters: ['html', 'lcov', 'text'],
  33. collectCoverageFrom: [
  34. 'packages/*/src/**/*.ts',
  35. '!packages/runtime-test/src/utils/**',
  36. '!packages/template-explorer/**',
  37. '!packages/sfc-playground/**',
  38. '!packages/size-check/**',
  39. '!packages/runtime-core/src/profiling.ts',
  40. '!packages/runtime-core/src/customFormatter.ts',
  41. // DOM transitions are tested via e2e so no coverage is collected
  42. '!packages/runtime-dom/src/components/Transition*',
  43. // only called in browsers
  44. '!packages/vue/src/devCheck.ts',
  45. // only used as a build entry
  46. '!packages/vue/src/runtime.ts',
  47. // mostly just entries
  48. '!packages/vue-compat/**'
  49. ],
  50. watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'],
  51. moduleFileExtensions: ['ts', 'tsx', 'js', 'json'],
  52. moduleNameMapper: {
  53. '@vue/consolidate': '@vue/consolidate',
  54. '@vue/compat': '<rootDir>/packages/vue-compat/src',
  55. '^@vue/(.*?)$': '<rootDir>/packages/$1/src',
  56. 'vue/compiler-sfc': '<rootDir>/packages/compiler-sfc/src',
  57. 'vue/server-renderer': '<rootDir>/packages/server-renderer/src',
  58. vue: '<rootDir>/packages/vue/src'
  59. },
  60. rootDir: __dirname,
  61. testMatch: ['<rootDir>/packages/**/__tests__/**/*spec.[jt]s?(x)'],
  62. testPathIgnorePatterns: process.env.SKIP_E2E
  63. ? // ignore example tests on netlify builds since they don't contribute
  64. // to coverage and can cause netlify builds to fail
  65. ['/node_modules/', '/examples/__tests__']
  66. : ['/node_modules/']
  67. }