/** * Error classes unit tests */ import { describe, it, expect } from 'vitest'; import { IyzicoError, IyzicoRequestError, IyzicoResponseError, } from '../../src/errors'; import type { ErrorResponse } from '../../src/types'; describe('IyzicoError', () => { it('should create error with message', () => { const error = new IyzicoError('Test error'); expect(error.message).toBe('Test error'); expect(error.name).toBe('IyzicoError'); expect(error.code).toBeUndefined(); expect(error.originalError).toBeUndefined(); }); it('should create error with code and originalError', () => { const originalError = new Error('Original error'); const error = new IyzicoError('Test error', 'TEST_CODE', originalError); expect(error.message).toBe('Test error'); expect(error.code).toBe('TEST_CODE'); expect(error.originalError).toBe(originalError); }); }); describe('IyzicoRequestError', () => { it('should create request error', () => { const error = new IyzicoRequestError('Request failed'); expect(error.message).toBe('Request failed'); expect(error.name).toBe('IyzicoRequestError'); expect(error.code).toBe('REQUEST_ERROR'); }); it('should create request error with originalError', () => { const originalError = new Error('Validation error'); const error = new IyzicoRequestError('Request failed', originalError); expect(error.message).toBe('Request failed'); expect(error.code).toBe('REQUEST_ERROR'); expect(error.originalError).toBe(originalError); }); }); describe('IyzicoResponseError', () => { it('should create response error', () => { const errorResponse: ErrorResponse = { status: 'failure', errorCode: 'PAYMENT_FAILED', errorMessage: 'Payment failed', }; const error = new IyzicoResponseError('Payment failed', errorResponse); expect(error.message).toBe('Payment failed'); expect(error.name).toBe('IyzicoResponseError'); expect(error.code).toBe('PAYMENT_FAILED'); expect(error.errorResponse).toEqual(errorResponse); }); it('should create response error with originalError', () => { const errorResponse: ErrorResponse = { status: 'failure', errorCode: 'PAYMENT_FAILED', errorMessage: 'Payment failed', }; const originalError = new Error('Network error'); const error = new IyzicoResponseError('Payment failed', errorResponse, originalError); expect(error.message).toBe('Payment failed'); expect(error.code).toBe('PAYMENT_FAILED'); expect(error.errorResponse).toEqual(errorResponse); expect(error.originalError).toBe(originalError); }); });