UNPKG

review-copilot

Version:

ReviewCopilot - AI-powered code review assistant with customizable prompts

58 lines (57 loc) 2.47 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 provider_factory_1 = require("../../../providers/provider-factory"); const ora_1 = __importDefault(require("ora")); jest.useFakeTimers(); // 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 - error handling', () => { 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 () => { jest.clearAllTimers(); jest.clearAllMocks(); mockSpinner._cleanup(); mockSpinner.stop(); jest.resetModules(); (0, review_utils_1.cleanupMocks)(); }); it('should handle provider creation errors', async () => { (0, review_utils_1.setupMocks)(); provider_factory_1.ProviderFactory.createProvider.mockImplementation(() => { throw new Error('Provider creation failed'); }); const result = await (0, review_1.reviewCommand)({ config: 'test-config.yaml' }); expect(result).toBe(false); expect(mockSpinner.start).toHaveBeenCalled(); expect(mockSpinner.fail).toHaveBeenCalled(); expect(mockSpinner.stop).toHaveBeenCalled(); }); it('should handle OpenAI errors', async () => { const { mockProvider } = (0, review_utils_1.setupMocks)(); const openAIError = new Error('API Error Details: {"error":{"type":"invalid_request_error"}}'); mockProvider.review.mockRejectedValue(openAIError); const result = await (0, review_1.reviewCommand)({ config: 'test-config.yaml' }); expect(result).toBe(true); expect(mockSpinner.start).toHaveBeenCalled(); expect(mockSpinner.succeed).toHaveBeenCalled(); expect(mockSpinner.stop).toHaveBeenCalled(); }); });