Files
iyzico/tests/unit/errors.test.ts
Duhan BALCI c65195d26d init
2026-01-01 18:30:21 +03:00

77 lines
2.6 KiB
TypeScript

/**
* 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);
});
});