diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e26a4f3f1a..a164ac64fe 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1441,7 +1441,6 @@ Rails/HttpStatus: - 'app/controllers/shop_controller.rb' - 'app/controllers/spree/admin/line_items_controller_decorator.rb' - 'app/controllers/spree/admin/products_controller_decorator.rb' - - 'app/controllers/spree/credit_cards_controller.rb' - 'app/controllers/spree/store_controller_decorator.rb' - 'app/controllers/stripe/callbacks_controller.rb' - 'app/controllers/stripe/webhooks_controller.rb' @@ -1976,7 +1975,6 @@ Style/HashSyntax: - 'spec/controllers/spree/admin/payments_controller_spec.rb' - 'spec/controllers/spree/api/products_controller_spec.rb' - 'spec/controllers/spree/api/variants_controller_spec.rb' - - 'spec/controllers/spree/credit_cards_controller_spec.rb' - 'spec/controllers/spree/user_sessions_controller_spec.rb' - 'spec/controllers/user_registrations_controller_spec.rb' - 'spec/features/admin/bulk_order_management_spec.rb' @@ -2255,7 +2253,6 @@ Style/RedundantReturn: Exclude: - 'app/controllers/admin/enterprise_fees_controller.rb' - 'app/controllers/admin/enterprises_controller.rb' - - 'app/controllers/spree/credit_cards_controller.rb' - 'app/models/enterprise_fee.rb' - 'app/models/spree/adjustment_decorator.rb' - 'app/models/spree/classification_decorator.rb' diff --git a/app/controllers/spree/credit_cards_controller.rb b/app/controllers/spree/credit_cards_controller.rb index 9dd129bacf..942f3e28af 100644 --- a/app/controllers/spree/credit_cards_controller.rb +++ b/app/controllers/spree/credit_cards_controller.rb @@ -10,10 +10,10 @@ module Spree render json: @credit_card, serializer: ::Api::CreditCardSerializer, status: :ok else message = t(:card_could_not_be_saved) - render json: { flash: { error: I18n.t(:spree_gateway_error_flash_for_checkout, error: message) } }, status: 400 + render json: { flash: { error: I18n.t(:spree_gateway_error_flash_for_checkout, error: message) } }, status: :bad_request end rescue Stripe::CardError => e - return render json: { flash: { error: I18n.t(:spree_gateway_error_flash_for_checkout, error: e.message) } }, status: 400 + render json: { flash: { error: I18n.t(:spree_gateway_error_flash_for_checkout, error: e.message) } }, status: :bad_request end def update @@ -26,6 +26,8 @@ module Spree else update_failed end + rescue ArgumentError + update_failed end def destroy @@ -79,7 +81,7 @@ module Spree end def update_failed - render json: { flash: { error: t(:card_could_not_be_updated) } }, status: 400 + render json: { flash: { error: t(:card_could_not_be_updated) } }, status: :bad_request end end end diff --git a/spec/controllers/spree/credit_cards_controller_spec.rb b/spec/controllers/spree/credit_cards_controller_spec.rb index 1a907a4fda..a89db449ea 100644 --- a/spec/controllers/spree/credit_cards_controller_spec.rb +++ b/spec/controllers/spree/credit_cards_controller_spec.rb @@ -15,17 +15,17 @@ describe Spree::CreditCardsController, type: :controller do let(:params) do { format: :json, - "exp_month" => 12, - "exp_year" => 2020, - "last4" => 4242, - "token" => token, - "cc_type" => "visa" + exp_month: 12, + exp_year: 2020, + last4: 4242, + token: token, + cc_type: "visa" } end before do stub_request(:post, "https://api.stripe.com/v1/customers") - .with(:body => { email: user.email, source: token }) + .with(body: { email: user.email, source: token }) .to_return(response_mock) end @@ -36,10 +36,10 @@ describe Spree::CreditCardsController, type: :controller do expect{ post :new_from_token, params }.to change(Spree::CreditCard, :count).by(1) card = Spree::CreditCard.last - card.gateway_payment_profile_id.should eq "card_1AEEb" - card.gateway_customer_profile_id.should eq "cus_AZNMJ" - card.user_id.should eq user.id - card.last_digits.should eq "4242" + expect(card.gateway_payment_profile_id).to eq "card_1AEEb" + expect(card.gateway_customer_profile_id).to eq "cus_AZNMJ" + expect(card.user_id).to eq user.id + expect(card.last_digits).to eq "4242" end context "when saving the card locally fails" do @@ -144,13 +144,13 @@ describe Spree::CreditCardsController, type: :controller do card.update_attribute(:user_id, user.id) stub_request(:get, "https://api.stripe.com/v1/customers/cus_AZNMJ"). - to_return(:status => 200, :body => JSON.generate(id: "cus_AZNMJ")) + to_return(status: 200, body: JSON.generate(id: "cus_AZNMJ")) end context "where the request to destroy the Stripe customer fails" do before do stub_request(:delete, "https://api.stripe.com/v1/customers/cus_AZNMJ"). - to_return(:status => 402, :body => JSON.generate(error: { message: 'Bup-bow!' })) + to_return(status: 402, body: JSON.generate(error: { message: 'Bup-bow!' })) end it "doesn't delete the card" do @@ -163,7 +163,7 @@ describe Spree::CreditCardsController, type: :controller do context "where the request to destroy the Stripe customer succeeds" do before do stub_request(:delete, "https://api.stripe.com/v1/customers/cus_AZNMJ"). - to_return(:status => 200, :body => JSON.generate(deleted: true, id: "cus_AZNMJ")) + to_return(status: 200, body: JSON.generate(deleted: true, id: "cus_AZNMJ")) end it "deletes the card and redirects to account_path" do