Sha256: 5f9569878a773c4f9c47efcfc72891a63a8e495f76968bb0e4c53bb8314728bd

Contents?: true

Size: 1.79 KB

Versions: 25

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'

module Spree
  class GatewayWithPassword < PaymentMethod
    preference :password, :string, :default => "password"
  end

  describe Admin::PaymentMethodsController, :type => :controller do
    stub_authorization!

    let(:payment_method) { GatewayWithPassword.create!(:name => "Bogus", :preferred_password => "haxme") }

    # regression test for #2094
    it "does not clear password on update" do
      expect(payment_method.preferred_password).to eq("haxme")
      spree_put :update, :id => payment_method.id, :payment_method => { :type => payment_method.class.to_s, :preferred_password => "" }
      expect(response).to redirect_to(spree.edit_admin_payment_method_path(payment_method))

      payment_method.reload
      expect(payment_method.preferred_password).to eq("haxme")
    end

    context "tries to save invalid payment" do
      it "doesn't break, responds nicely" do
        expect {
          spree_post :create, :payment_method => { :name => "", :type => "Spree::Gateway::Bogus" }
        }.not_to raise_error
      end
    end

    it "can create a payment method of a valid type" do
      expect {
        spree_post :create, :payment_method => { :name => "Test Method", :type => "Spree::Gateway::Bogus" }
      }.to change(Spree::PaymentMethod, :count).by(1)

      expect(response).to be_redirect
      expect(response).to redirect_to spree.edit_admin_payment_method_path(assigns(:payment_method))
    end

    it "can not create a payment method of an invalid type" do
      expect {
        spree_post :create, :payment_method => { :name => "Invalid Payment Method", :type => "Spree::InvalidType" }
      }.to change(Spree::PaymentMethod, :count).by(0)

      expect(response).to be_redirect
      expect(response).to redirect_to spree.new_admin_payment_method_path
    end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
solidus_backend-1.1.4 spec/controllers/spree/admin/payment_methods_controller_spec.rb
solidus_backend-1.0.7 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.5 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.4 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.3 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.2 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.0.10 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.1 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.0 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.0.rc4 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.0.9 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.0.rc3 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.0.rc2 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.1.0.rc1 spec/controllers/spree/admin/payment_methods_controller_spec.rb
solidus_backend-1.0.6 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.0.8 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.0.7 spec/controllers/spree/admin/payment_methods_controller_spec.rb
solidus_backend-1.1.3 spec/controllers/spree/admin/payment_methods_controller_spec.rb
solidus_backend-1.0.5 spec/controllers/spree/admin/payment_methods_controller_spec.rb
spree_backend-3.0.6.1 spec/controllers/spree/admin/payment_methods_controller_spec.rb