From 9fc82776ec5bb79e8b3fc3bc630e55a351e41f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <2887858+deivid-rodriguez@users.noreply.github.com> Date: Mon, 27 Oct 2025 10:45:45 +0100 Subject: [PATCH] Move Stripe test payment method handling to a single place And comment a bit on them. Co-authored-by: David Cook --- ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Diners_Club/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Discover/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_JCB/captures_the_payment.yml | 0 .../from_JCB/returns_payment_intent_id.yml | 0 .../from_Mastercard/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_UnionPay/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Visa/captures_the_payment.yml | 0 .../from_Visa/returns_payment_intent_id.yml | 0 .../from_Visa_debit_/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 ...t_intent_last_payment_error_as_message.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Diners_Club/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Discover/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_JCB/captures_the_payment.yml | 0 .../from_JCB/returns_payment_intent_id.yml | 0 .../from_Mastercard/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_UnionPay/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../from_Visa/captures_the_payment.yml | 0 .../from_Visa/returns_payment_intent_id.yml | 0 .../from_Visa_debit_/captures_the_payment.yml | 0 .../returns_payment_intent_id.yml | 0 .../stripe/payment_intent_validator_spec.rb | 183 ++++++++---------- 57 files changed, 79 insertions(+), 104 deletions(-) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_American_Express/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_American_Express/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Diners_Club/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Diners_Club/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Discover/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Discover/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_JCB/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_JCB/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_debit_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_debit_/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_prepaid_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_prepaid_/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_UnionPay/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_UnionPay/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa_debit_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa_debit_/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/{invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_American_Express/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_American_Express/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Diners_Club/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Diners_Club/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Discover/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Discover/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_JCB/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_JCB/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_debit_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_debit_/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_prepaid_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Mastercard_prepaid_/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_UnionPay/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_UnionPay/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa/returns_payment_intent_id.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa_debit_/captures_the_payment.yml (100%) rename spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/{valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents => }/from_Visa_debit_/returns_payment_intent_id.yml (100%) diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/invalid_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_American_Express/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Diners_Club/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Discover/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_JCB/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Mastercard_prepaid_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_UnionPay/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml diff --git a/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml similarity index 100% rename from spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/valid_non-3D_credit_cards_are_correctly_handled/behaves_like_payments_intents/from_Visa_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v11.1.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml diff --git a/spec/lib/stripe/payment_intent_validator_spec.rb b/spec/lib/stripe/payment_intent_validator_spec.rb index 0d75edc83a..b7a3f44d45 100644 --- a/spec/lib/stripe/payment_intent_validator_spec.rb +++ b/spec/lib/stripe/payment_intent_validator_spec.rb @@ -4,6 +4,66 @@ require 'spec_helper' require 'stripe/payment_intent_validator' RSpec.describe Stripe::PaymentIntentValidator do + # These are test payment method IDs, recognised by Stripe for testing purposes. + # See Cards By Brand > PaymentMethods here: https://docs.stripe.com/testing?testing-method=payment-methods#cards + # We do not send raw card numbers to the API. + + self::VALID_NON_3DS_TEST_PAYMENT_METHODS = { + "pm_card_visa" => "Visa", + "pm_card_visa_debit" => "Visa (debit)", + "pm_card_mastercard" => "Mastercard", + "pm_card_mastercard_debit" => "Mastercard (debit)", + "pm_card_mastercard_prepaid" => "Mastercard (prepaid)", + "pm_card_amex" => "American Express", + "pm_card_discover" => "Discover", + "pm_card_diners" => "Diners Club", + "pm_card_jcb" => "JCB", + "pm_card_unionpay" => "UnionPay" + }.freeze + + self::VALID_3DS_TEST_PAYMENT_METHODS = { + "pm_card_authenticationRequiredOnSetup" => "Authenticate unless set up", + "pm_card_authenticationRequired" => "Always authenticate", + "pm_card_authenticationRequiredSetupForOffSession" => "Already set up", + "pm_card_authenticationRequiredChargeDeclinedInsufficientFunds" => "Insufficient funds" + }.freeze + + self::INVALID_TEST_PAYMENT_METHODS = { + "pm_card_visa_chargeDeclined" => { + type: "Generic decline", + message: "Your card was declined." + }, + "pm_card_visa_chargeDeclinedInsufficientFunds" => { + type: "Insufficient funds decline", + message: "Your card has insufficient funds." + }, + "pm_card_visa_chargeDeclinedLostCard" => { + type: "Lost card decline", + message: "Your card was declined." + }, + "pm_card_visa_chargeDeclinedStolenCard" => { + type: "Stolen card decline", + message: "Your card was declined." + }, + "pm_card_chargeDeclinedExpiredCard" => { + type: "Expired card decline", + message: "Your card has expired." + }, + "pm_card_chargeDeclinedIncorrectCvc" => { + type: "Incorrect CVC decline", + message: "Your card's security code is incorrect." + }, + "pm_card_chargeDeclinedProcessingError" => { + type: "Processing error decline", + message: "An error occurred while processing your card. Try again in a little bit." + }, + "pm_card_visa_chargeDeclinedVelocityLimitExceeded" => { + type: "Exceeding velocity limit decline", + message: %(Your card was declined for making repeated attempts too frequently + or exceeding its amount limit.).squish + } + }.freeze + let(:payment_method) { create(:stripe_sca_payment_method, distributor_ids: [create(:distributor_enterprise).id], preferred_enterprise_id: create(:enterprise).id) @@ -22,7 +82,7 @@ RSpec.describe Stripe::PaymentIntentValidator do describe "as a guest" do context "when payment intent is valid" do - shared_examples "payments intents" do |card_type, pm_card| + self::VALID_NON_3DS_TEST_PAYMENT_METHODS.each do |pm_card, card_type| context "from #{card_type}" do let!(:payment_intent) do Stripe::PaymentIntent.create({ @@ -56,34 +116,18 @@ RSpec.describe Stripe::PaymentIntentValidator do end end - context "valid non-3D credit cards are correctly handled" do - it_behaves_like "payments intents", "Visa", "pm_card_visa" - it_behaves_like "payments intents", "Visa (debit)", "pm_card_visa_debit" - it_behaves_like "payments intents", "Mastercard", "pm_card_mastercard" - it_behaves_like "payments intents", "Mastercard (debit)", "pm_card_mastercard_debit" - it_behaves_like "payments intents", "Mastercard (prepaid)", "pm_card_mastercard_prepaid" - it_behaves_like "payments intents", "American Express", "pm_card_amex" - it_behaves_like "payments intents", "Discover", "pm_card_discover" - it_behaves_like "payments intents", "Diners Club", "pm_card_diners" - it_behaves_like "payments intents", "JCB", "pm_card_jcb" - it_behaves_like "payments intents", "UnionPay", "pm_card_unionpay" - end + self::VALID_3DS_TEST_PAYMENT_METHODS.each_key do |pm_card| + xcontext "from 3D card #{pm_card}" do + pending("updating spec to handle 3D2S cards") - xcontext "valid 3D cards are correctly handled" do - pending("updating spec to handle 3D2S cards") - it_behaves_like "payments intents", "Authenticate unless set up", - "pm_card_authenticationRequiredOnSetup" - it_behaves_like "payments intents", "Always authenticate", - "pm_card_authenticationRequired" - it_behaves_like "payments intents", "Already set up", - "pm_card_authenticationRequiredSetupForOffSession" - it_behaves_like "payments intents", "Insufficient funds", - "pm_card_authenticationRequiredChargeDeclinedInsufficientFunds" + it "is correctly handled" + end end end + context "when payment intent is invalid" do - shared_examples "payments intents" do |card_type, pm_card, error_message| - context "from #{card_type}" do + self::INVALID_TEST_PAYMENT_METHODS.each do |pm_card, error| + context "from #{error[:type]}" do let(:payment_intent) do Stripe::PaymentIntent.create({ amount: 100, @@ -96,36 +140,10 @@ RSpec.describe Stripe::PaymentIntentValidator do it "raises Stripe error with payment intent last_payment_error as message" do expect { Stripe::PaymentIntent.confirm(payment_intent.id) - }.to raise_error Stripe::StripeError, error_message + }.to raise_error Stripe::StripeError, error[:message] end end end - context "invalid credit cards are correctly handled" do - it_behaves_like "payments intents", "Generic decline", "pm_card_visa_chargeDeclined", - "Your card was declined." - it_behaves_like "payments intents", "Insufficient funds decline", - "pm_card_visa_chargeDeclinedInsufficientFunds", - "Your card has insufficient funds." - it_behaves_like "payments intents", "Lost card decline", - "pm_card_visa_chargeDeclinedLostCard", - "Your card was declined." - it_behaves_like "payments intents", "Stolen card decline", - "pm_card_visa_chargeDeclinedStolenCard", - "Your card was declined." - it_behaves_like "payments intents", "Expired card decline", - "pm_card_chargeDeclinedExpiredCard", - "Your card has expired." - it_behaves_like "payments intents", "Incorrect CVC decline", - "pm_card_chargeDeclinedIncorrectCvc", - "Your card's security code is incorrect." - it_behaves_like "payments intents", "Processing error decline", - "pm_card_chargeDeclinedProcessingError", - "An error occurred while processing your card. Try again in a little bit." - it_behaves_like "payments intents", "Exceeding velocity limit decline", - "pm_card_visa_chargeDeclinedVelocityLimitExceeded", - %(Your card was declined for making repeated attempts too frequently - or exceeding its amount limit.).squish - end end end @@ -140,7 +158,7 @@ RSpec.describe Stripe::PaymentIntentValidator do }) end - shared_examples "payments intents" do |card_type, pm_card| + self::VALID_NON_3DS_TEST_PAYMENT_METHODS.each do |pm_card, card_type| context "from #{card_type}" do let!(:payment_intent) do Stripe::PaymentIntent.create({ @@ -176,29 +194,12 @@ RSpec.describe Stripe::PaymentIntentValidator do end end - context "valid non-3D credit cards are correctly handled" do - it_behaves_like "payments intents", "Visa", "pm_card_visa" - it_behaves_like "payments intents", "Visa (debit)", "pm_card_visa_debit" - it_behaves_like "payments intents", "Mastercard", "pm_card_mastercard" - it_behaves_like "payments intents", "Mastercard (debit)", "pm_card_mastercard_debit" - it_behaves_like "payments intents", "Mastercard (prepaid)", "pm_card_mastercard_prepaid" - it_behaves_like "payments intents", "American Express", "pm_card_amex" - it_behaves_like "payments intents", "Discover", "pm_card_discover" - it_behaves_like "payments intents", "Diners Club", "pm_card_diners" - it_behaves_like "payments intents", "JCB", "pm_card_jcb" - it_behaves_like "payments intents", "UnionPay", "pm_card_unionpay" - end + self::VALID_3DS_TEST_PAYMENT_METHODS.each_key do |pm_card| + xcontext "from 3D card #{pm_card}" do + pending("updating spec to handle 3D2S cards") - xcontext "valid 3D cards are correctly handled" do - pending("updating spec to handle 3D2S cards") - it_behaves_like "payments intents", "Authenticate unless set up", - "pm_card_authenticationRequiredOnSetup" - it_behaves_like "payments intents", "Always authenticate", - "pm_card_authenticationRequired" - it_behaves_like "payments intents", "Already set up", - "pm_card_authenticationRequiredSetupForOffSession" - it_behaves_like "payments intents", "Insufficient funds", - "pm_card_authenticationRequiredChargeDeclinedInsufficientFunds" + it "is correctly handled" + end end end context "when payment intent is invalid" do @@ -211,8 +212,8 @@ RSpec.describe Stripe::PaymentIntentValidator do }) end - shared_examples "payments intents" do |card_type, pm_card, error_message| - context "from #{card_type}" do + self::INVALID_TEST_PAYMENT_METHODS.each do |pm_card, error| + context "from #{error[:type]}" do let(:payment_intent) do Stripe::PaymentIntent.create({ amount: 100, @@ -227,36 +228,10 @@ RSpec.describe Stripe::PaymentIntentValidator do it "raises Stripe error with payment intent last_payment_error as message" do expect { Stripe::PaymentIntent.confirm(payment_intent.id) - }.to raise_error Stripe::StripeError, error_message + }.to raise_error Stripe::StripeError, error[:message] end end end - context "invalid credit cards are correctly handled" do - it_behaves_like "payments intents", "Generic decline", "pm_card_visa_chargeDeclined", - "Your card was declined." - it_behaves_like "payments intents", "Insufficient funds decline", - "pm_card_visa_chargeDeclinedInsufficientFunds", - "Your card has insufficient funds." - it_behaves_like "payments intents", "Lost card decline", - "pm_card_visa_chargeDeclinedLostCard", - "Your card was declined." - it_behaves_like "payments intents", "Stolen card decline", - "pm_card_visa_chargeDeclinedStolenCard", - "Your card was declined." - it_behaves_like "payments intents", "Expired card decline", - "pm_card_chargeDeclinedExpiredCard", - "Your card has expired." - it_behaves_like "payments intents", "Incorrect CVC decline", - "pm_card_chargeDeclinedIncorrectCvc", - "Your card's security code is incorrect." - it_behaves_like "payments intents", "Processing error decline", - "pm_card_chargeDeclinedProcessingError", - "An error occurred while processing your card. Try again in a little bit." - it_behaves_like "payments intents", "Exceeding velocity limit decline", - "pm_card_visa_chargeDeclinedVelocityLimitExceeded", - %(Your card was declined for making repeated attempts too frequently - or exceeding its amount limit.).squish - end end end end