jest.config.cjs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. module.exports = {
  2. preset: 'ts-jest',
  3. testEnvironment: 'jsdom',
  4. // 使用 mini-testing-utils 提供的共享 setup
  5. setupFilesAfterEnv: ['@d8d/mini-testing-utils/testing/setup'],
  6. moduleNameMapper: {
  7. // 测试文件中的别名映射(仅用于测试文件)
  8. '^@/(.*)$': '<rootDir>/src/$1',
  9. '^~/(.*)$': '<rootDir>/tests/$1',
  10. // Taro API 重定向到共享 mock
  11. '^@tarojs/taro$': '@d8d/mini-testing-utils/testing/taro-api-mock.ts',
  12. // 样式和文件映射
  13. '\\.(css|less|scss|sass)$': '@d8d/mini-testing-utils/testing/style-mock.js',
  14. '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
  15. '@d8d/mini-testing-utils/testing/file-mock.js'
  16. },
  17. testMatch: [
  18. '<rootDir>/tests/**/*.spec.{ts,tsx}',
  19. '<rootDir>/tests/**/*.test.{ts,tsx}'
  20. ],
  21. collectCoverageFrom: [
  22. 'src/**/*.{ts,tsx}',
  23. '!src/**/*.d.ts',
  24. '!src/**/index.{ts,tsx}',
  25. '!src/**/*.stories.{ts,tsx}'
  26. ],
  27. coverageDirectory: 'coverage',
  28. coverageReporters: ['text', 'lcov', 'html'],
  29. testPathIgnorePatterns: [
  30. '/node_modules/',
  31. '/dist/',
  32. '/coverage/'
  33. ],
  34. transform: {
  35. '^.+\\.(ts|tsx)$': 'ts-jest',
  36. '^.+\\.(js|jsx)$': 'babel-jest'
  37. },
  38. transformIgnorePatterns: [
  39. '/node_modules/(?!(swiper|@tarojs)/)'
  40. ],
  41. moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json']
  42. }