mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
* feat: add MCP viewer and enhanced UI - Add McpExecutionStatus type with discriminated union for execution states - Implement McpExecution component with live status updates and collapsible output - Replace inline MCP UI in ChatRow with dedicated McpExecution component - Add comprehensive test coverage for useMcpToolTool - Enhance CodeAccordian to support custom headers - Improve combineCommandSequences to handle MCP execution flows * refactor: merge loops in combineCommandSequences for better efficiency - Reduced from 3 separate loops to 1 main processing loop - Improved time complexity from O(n²) to O(n) - Reduced total passes through array from 4 to 2 - Better memory access patterns and cache utilization * feat: enhance JSON parsing and rendering in McpExecution component * feat: add mock implementations for react-markdown and remark-gfm * fix: remove unreachable return statement in ChatRowContent component * feat(i18n): add execution status messages and error handling for invalid JSON arguments * test: add parameter validation tests for missing server_name and tool_name * Update McpExecution component to show server name in header and tool name in approval section --------- Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
34 lines
2.2 KiB
JavaScript
34 lines
2.2 KiB
JavaScript
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
module.exports = {
|
|
preset: "ts-jest",
|
|
testEnvironment: "jsdom",
|
|
injectGlobals: true,
|
|
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
|
|
transform: { "^.+\\.(ts|tsx)$": ["ts-jest", { tsconfig: { jsx: "react-jsx", module: "ESNext" } }] },
|
|
testMatch: ["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],
|
|
setupFilesAfterEnv: ["<rootDir>/src/setupTests.tsx"],
|
|
moduleNameMapper: {
|
|
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
|
|
"^vscrui$": "<rootDir>/src/__mocks__/vscrui.ts",
|
|
"^@vscode/webview-ui-toolkit/react$": "<rootDir>/src/__mocks__/@vscode/webview-ui-toolkit/react.ts",
|
|
"^@/(.*)$": "<rootDir>/src/$1",
|
|
"^@roo/(.*)$": "<rootDir>/../src/shared/$1",
|
|
"^@src/(.*)$": "<rootDir>/src/$1",
|
|
"^src/i18n/setup$": "<rootDir>/src/__mocks__/i18n/setup.ts",
|
|
"^\\.\\./setup$": "<rootDir>/src/__mocks__/i18n/setup.ts",
|
|
"^\\./setup$": "<rootDir>/src/__mocks__/i18n/setup.ts",
|
|
"^src/i18n/TranslationContext$": "<rootDir>/src/__mocks__/i18n/TranslationContext.tsx",
|
|
"^\\.\\./TranslationContext$": "<rootDir>/src/__mocks__/i18n/TranslationContext.tsx",
|
|
"^\\./TranslationContext$": "<rootDir>/src/__mocks__/i18n/TranslationContext.tsx",
|
|
"^@src/utils/highlighter$": "<rootDir>/src/__mocks__/utils/highlighter.ts",
|
|
"^shiki$": "<rootDir>/src/__mocks__/shiki.ts",
|
|
"^react-markdown$": "<rootDir>/src/__mocks__/react-markdown.tsx",
|
|
"^remark-gfm$": "<rootDir>/src/__mocks__/remark-gfm.ts",
|
|
},
|
|
reporters: [["jest-simple-dot-reporter", {}]],
|
|
transformIgnorePatterns: [
|
|
"/node_modules/(?!(shiki|rehype-highlight|react-remark|unist-util-visit|unist-util-find-after|vfile|unified|bail|is-plain-obj|trough|vfile-message|unist-util-stringify-position|mdast-util-from-markdown|mdast-util-to-string|micromark|decode-named-character-reference|character-entities|markdown-table|zwitch|longest-streak|escape-string-regexp|unist-util-is|hast-util-to-text|@vscode/webview-ui-toolkit|@microsoft/fast-react-wrapper|@microsoft/fast-element|@microsoft/fast-foundation|@microsoft/fast-web-utilities|exenv-es6|vscrui)/)",
|
|
],
|
|
roots: ["<rootDir>"],
|
|
moduleDirectories: ["node_modules", "src"],
|
|
}
|