jest.config.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /** @type {import('ts-jest').JestConfigWithTsJest} */
  2. module.exports = {
  3. preset: "ts-jest",
  4. testEnvironment: "node",
  5. moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
  6. transform: {
  7. "^.+\\.tsx?$": [
  8. "ts-jest",
  9. {
  10. tsconfig: {
  11. module: "CommonJS",
  12. moduleResolution: "node",
  13. esModuleInterop: true,
  14. allowJs: true,
  15. },
  16. diagnostics: false,
  17. isolatedModules: true,
  18. },
  19. ],
  20. },
  21. testMatch: ["**/__tests__/**/*.test.ts"],
  22. // Platform-specific test configuration
  23. testPathIgnorePatterns: [
  24. // Skip platform-specific tests based on environment
  25. ...(process.platform === "win32" ? [".*\\.bash\\.test\\.ts$"] : [".*\\.cmd\\.test\\.ts$"]),
  26. // PowerShell tests are conditionally skipped in the test files themselves using the setupFilesAfterEnv
  27. ],
  28. moduleNameMapper: {
  29. "^vscode$": "<rootDir>/src/__mocks__/vscode.js",
  30. "@modelcontextprotocol/sdk$": "<rootDir>/src/__mocks__/@modelcontextprotocol/sdk/index.js",
  31. "@modelcontextprotocol/sdk/(.*)": "<rootDir>/src/__mocks__/@modelcontextprotocol/sdk/$1",
  32. "^delay$": "<rootDir>/src/__mocks__/delay.js",
  33. "^p-wait-for$": "<rootDir>/src/__mocks__/p-wait-for.js",
  34. "^serialize-error$": "<rootDir>/src/__mocks__/serialize-error.js",
  35. "^strip-ansi$": "<rootDir>/src/__mocks__/strip-ansi.js",
  36. "^default-shell$": "<rootDir>/src/__mocks__/default-shell.js",
  37. "^os-name$": "<rootDir>/src/__mocks__/os-name.js",
  38. "^strip-bom$": "<rootDir>/src/__mocks__/strip-bom.js",
  39. "^@roo/(.*)$": "<rootDir>/src/$1",
  40. "^@src/(.*)$": "<rootDir>/webview-ui/src/$1",
  41. },
  42. transformIgnorePatterns: [
  43. "node_modules/(?!(@modelcontextprotocol|delay|p-wait-for|serialize-error|strip-ansi|default-shell|os-name|strip-bom)/)",
  44. ],
  45. roots: ["<rootDir>/src", "<rootDir>/webview-ui/src"],
  46. modulePathIgnorePatterns: [".vscode-test"],
  47. reporters: [["jest-simple-dot-reporter", {}]],
  48. setupFiles: ["<rootDir>/src/__mocks__/jest.setup.ts"],
  49. setupFilesAfterEnv: ["<rootDir>/src/integrations/terminal/__tests__/setupTerminalTests.ts"],
  50. }