review-copilot
Version:
ReviewCopilot - AI-powered code review assistant with customizable prompts
103 lines (102 loc) • 3.95 kB
JavaScript
;
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;