UNPKG

review-copilot

Version:

ReviewCopilot - AI-powered code review assistant with customizable prompts

103 lines (102 loc) 3.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupMocks = exports.cleanupMocks = exports.mockConfig = exports.mockCommit = void 0; const config_manager_1 = require("../../../config/config-manager"); const provider_factory_1 = require("../../../providers/provider-factory"); const vcs_factory_1 = require("../../../utils/vcs-factory"); const git_platform_factory_1 = require("../../../services/git-platform-factory"); exports.mockCommit = { hash: 'abc123', date: '2024-01-01', message: 'feat: test commit', author: 'Test Author', files: [ { filename: 'src/test.ts', changes: 'test code changes', }, ], }; exports.mockConfig = { providers: { openai: { enabled: true, apiKey: 'test-key', model: 'gpt-4', }, }, rules: { codeChanges: { enabled: true, filePatterns: ['**/*.ts'], prompt: 'Review this code', }, commitMessage: { enabled: true, prompt: 'Review this commit message', }, branchName: { enabled: true, prompt: 'Review this branch name', }, }, triggers: { onPullRequest: true, onPush: false, }, customReviewPoints: { security: { enabled: true, prompt: 'Review for security issues', }, }, }; // Store original implementations const originalImplementations = { ConfigManagerGetInstance: config_manager_1.ConfigManager.getInstance, ProviderFactoryCreateProvider: provider_factory_1.ProviderFactory.createProvider, getVcsProvider: vcs_factory_1.getVcsProvider, GitPlatformFactoryCreateService: git_platform_factory_1.GitPlatformFactory.createService, }; // Cleanup function to restore original implementations const cleanupMocks = () => { config_manager_1.ConfigManager.getInstance = originalImplementations.ConfigManagerGetInstance; provider_factory_1.ProviderFactory.createProvider = originalImplementations.ProviderFactoryCreateProvider; vcs_factory_1.getVcsProvider = originalImplementations.getVcsProvider; git_platform_factory_1.GitPlatformFactory.createService = originalImplementations.GitPlatformFactoryCreateService; }; exports.cleanupMocks = cleanupMocks; const setupMocks = (customConfig = exports.mockConfig, customCommits = [exports.mockCommit]) => { // Clean up any existing mocks first (0, exports.cleanupMocks)(); const mockConfigManager = { loadConfig: jest.fn().mockResolvedValue(undefined), getConfig: jest.fn().mockReturnValue(customConfig), }; config_manager_1.ConfigManager.getInstance = jest.fn().mockReturnValue(mockConfigManager); const mockProvider = { review: jest.fn().mockResolvedValue({ success: true, message: 'Review completed successfully', }), }; provider_factory_1.ProviderFactory.createProvider = jest.fn().mockReturnValue(mockProvider); const mockVcsProvider = { getPullRequestFiles: jest.fn().mockResolvedValue(customCommits[0]), getPullRequestCommits: jest.fn().mockResolvedValue(customCommits), getCurrentBranchName: jest.fn().mockResolvedValue('feature/test'), }; vcs_factory_1.getVcsProvider = jest.fn().mockReturnValue(mockVcsProvider); const mockGitService = { getPRDetails: jest .fn() .mockResolvedValue({ owner: 'owner', repo: 'repo', pullNumber: 1 }), createIssueComment: jest.fn().mockResolvedValue(undefined), createReviewComment: jest.fn().mockResolvedValue(undefined), }; git_platform_factory_1.GitPlatformFactory.createService = jest.fn().mockReturnValue(mockGitService); return { mockConfigManager, mockProvider, mockVcsProvider, mockGitService }; }; exports.setupMocks = setupMocks;