From 92022d0e24178a2559804d194d3cb6c72baab353 Mon Sep 17 00:00:00 2001 From: Peter Raboud Date: Thu, 24 Feb 2022 22:18:53 -0500 Subject: [PATCH] Properly handle API errors with unknown error types --- lib/Error.js | 8 +++++++- test/Error.spec.js | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Error.js b/lib/Error.js index 82dcd5c7f4..2ad52c931a 100644 --- a/lib/Error.js +++ b/lib/Error.js @@ -49,7 +49,7 @@ class StripeError extends Error { case 'invalid_grant': return new StripeInvalidGrantError(rawStripeError); default: - return new GenericError('Generic', 'Unknown Error'); + return new StripeUnknownError(rawStripeError); } } } @@ -122,6 +122,11 @@ class StripeIdempotencyError extends StripeError {} */ class StripeInvalidGrantError extends StripeError {} +/** + * Any other error from Stripe not specifically captured above + */ +class StripeUnknownError extends StripeError {} + module.exports.generate = StripeError.generate; module.exports.StripeError = StripeError; module.exports.StripeCardError = StripeCardError; @@ -134,3 +139,4 @@ module.exports.StripeConnectionError = StripeConnectionError; module.exports.StripeSignatureVerificationError = StripeSignatureVerificationError; module.exports.StripeIdempotencyError = StripeIdempotencyError; module.exports.StripeInvalidGrantError = StripeInvalidGrantError; +module.exports.StripeUnknownError = StripeUnknownError; diff --git a/test/Error.spec.js b/test/Error.spec.js index 77f0ab34ab..d387905421 100644 --- a/test/Error.spec.js +++ b/test/Error.spec.js @@ -20,6 +20,9 @@ describe('Error', () => { expect( Error.StripeError.generate({type: 'idempotency_error'}) ).to.be.instanceOf(Error.StripeIdempotencyError); + expect( + Error.StripeError.generate({type: 'weird_error'}) + ).to.be.instanceOf(Error.StripeUnknownError); }); it('copies whitelisted properties', () => {