27 lines
965 B
TypeScript
27 lines
965 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { AppError } from '../../src/utils/errors';
|
|
import { ERROR_CODES } from '@insforge/shared-schemas';
|
|
import { normalizeStripeWebhookError } from '../../src/api/routes/webhooks/stripe.routes';
|
|
|
|
describe('normalizeStripeWebhookError', () => {
|
|
it('maps Stripe signature verification errors to invalid input app errors', () => {
|
|
const error = new Error('Webhook signature verification failed');
|
|
error.name = 'StripeSignatureVerificationError';
|
|
|
|
const normalized = normalizeStripeWebhookError(error);
|
|
|
|
expect(normalized).toBeInstanceOf(AppError);
|
|
expect(normalized).toMatchObject({
|
|
message: 'Webhook signature verification failed',
|
|
statusCode: 400,
|
|
code: ERROR_CODES.INVALID_INPUT,
|
|
});
|
|
});
|
|
|
|
it('passes through unrelated errors unchanged', () => {
|
|
const error = new Error('Unexpected failure');
|
|
|
|
expect(normalizeStripeWebhookError(error)).toBe(error);
|
|
});
|
|
});
|