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