UNPKG

review-copilot

Version:

ReviewCopilot - AI-powered code review assistant with customizable prompts

78 lines (77 loc) 3.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const review_1 = require("../review"); const review_utils_1 = require("./review.utils"); const ora_1 = __importDefault(require("ora")); // Mock other dependencies jest.mock('../../../config/config-manager'); jest.mock('../../../utils/vcs-factory'); jest.mock('../../../providers/provider-factory'); jest.mock('../../../providers/openai-provider'); jest.mock('../../../services/git-platform-factory'); describe('reviewCommand - edge cases', () => { const mockSpinner = ora_1.default.mockSpinnerInstance; beforeEach(() => { jest.clearAllMocks(); // Reset spinner mock state Object.values(mockSpinner).forEach((mock) => { if (typeof mock === 'function' && 'mockClear' in mock) { mock.mockClear(); } }); }); afterEach(async () => { mockSpinner._cleanup(); jest.clearAllTimers(); jest.resetModules(); (0, review_utils_1.cleanupMocks)(); }); afterAll(() => { jest.restoreAllMocks(); }); it('should handle empty file patterns', async () => { const configWithEmptyPatterns = { ...review_utils_1.mockConfig, rules: { ...review_utils_1.mockConfig.rules, codeChanges: { enabled: true, filePatterns: [], prompt: 'Review this code', }, }, }; const { mockProvider } = (0, review_utils_1.setupMocks)(configWithEmptyPatterns); const result = await (0, review_1.reviewCommand)({ config: 'test-config.yaml' }); expect(result).toBe(true); expect(mockProvider.review).toHaveBeenCalled(); expect(mockSpinner.start).toHaveBeenCalled(); expect(mockSpinner.succeed).toHaveBeenCalled(); expect(mockSpinner.stop).toHaveBeenCalled(); }); it('should handle commits with no files', async () => { const noFilesCommit = { ...review_utils_1.mockCommit, files: [] }; const { mockProvider } = (0, review_utils_1.setupMocks)(review_utils_1.mockConfig, [noFilesCommit]); const result = await (0, review_1.reviewCommand)({ config: 'test-config.yaml' }); expect(result).toBe(true); expect(mockProvider.review).toHaveBeenCalledTimes(1); expect(mockSpinner.start).toHaveBeenCalled(); expect(mockSpinner.succeed).toHaveBeenCalled(); expect(mockSpinner.stop).toHaveBeenCalled(); }); it('should handle baseBranch parameter', async () => { const { mockVcsProvider } = (0, review_utils_1.setupMocks)(); const result = await (0, review_1.reviewCommand)({ config: 'test-config.yaml', baseBranch: 'develop', }); expect(result).toBe(true); expect(mockVcsProvider.getPullRequestFiles).toHaveBeenCalled(); expect(mockSpinner.start).toHaveBeenCalled(); expect(mockSpinner.succeed).toHaveBeenCalled(); expect(mockSpinner.stop).toHaveBeenCalled(); }); });