require 'spec_helper' feature ' As an admin I want to manage payments ' do include AuthenticationWorkflow let(:order) { create(:completed_order_with_fees) } scenario "visiting the payment form" do quick_login_as_admin visit spree.new_admin_order_payment_path order expect(page).to have_content "New Payment" end context "with sensitive payment fee" do before do payment_method = create(:payment_method, distributors: [order.distributor]) # This calculator doesn't handle a `nil` order well. # That has been useful in finding bugs. ;-) payment_method.calculator = Spree::Calculator::FlatPercentItemTotal.new payment_method.save! end scenario "visiting the payment form" do quick_login_as_admin visit spree.new_admin_order_payment_path order expect(page).to have_content "New Payment" end end context "with a StripeSCA payment method" do before do stripe_payment_method = create(:stripe_sca_payment_method, distributors: [order.distributor]) order.payments << create(:payment, payment_method: stripe_payment_method, order: order) end it "renders the payment details" do quick_login_as_admin visit spree.admin_order_payments_path order page.click_link("StripeSCA") expect(page).to have_content order.payments.last.source.last_digits end context "with a deleted credit card" do before do order.payments.last.update_attribute(:source, nil) end it "renders the payment details" do quick_login_as_admin visit spree.admin_order_payments_path order page.click_link("StripeSCA") expect(page).to have_content order.payments.last.amount end end end end