diff --git a/app/models/solidus_stripe/payment_method.rb b/app/models/solidus_stripe/payment_method.rb index f2f44ab9..0897b710 100644 --- a/app/models/solidus_stripe/payment_method.rb +++ b/app/models/solidus_stripe/payment_method.rb @@ -5,6 +5,8 @@ class PaymentMethod < ::Spree::PaymentMethod preference :api_key, :string preference :publishable_key, :string + validates :available_to_admin, inclusion: { in: [false] } + def partial_name "stripe" end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9c5aedad..8b3e6873 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -8,3 +8,9 @@ en: models: solidus_stripe/payment_source: Solidus Stripe Payment Source solidus_stripe/payment_method: Solidus Stripe Payment Method + errors: + models: + solidus_stripe/payment_method: + attributes: + available_to_admin: + inclusion: "is not allowed for the Stripe payment method" diff --git a/lib/solidus_stripe/testing_support/factories.rb b/lib/solidus_stripe/testing_support/factories.rb index 2d982efd..81c43097 100644 --- a/lib/solidus_stripe/testing_support/factories.rb +++ b/lib/solidus_stripe/testing_support/factories.rb @@ -4,6 +4,7 @@ factory :stripe_payment_method, class: 'SolidusStripe::PaymentMethod' do type { "SolidusStripe::PaymentMethod" } name { "Stripe Payment Method" } + available_to_admin { false } preferences { { api_key: SecureRandom.hex(8), diff --git a/spec/models/solidus_stripe/payment_method_spec.rb b/spec/models/solidus_stripe/payment_method_spec.rb index e09c4eb6..207b24e8 100644 --- a/spec/models/solidus_stripe/payment_method_spec.rb +++ b/spec/models/solidus_stripe/payment_method_spec.rb @@ -6,4 +6,14 @@ it 'has a working factory' do expect(create(:stripe_payment_method)).to be_valid end + + it "doesn't allow available_to_admin" do + record = described_class.new(available_to_admin: true) + + record.valid? + + expect( + record.errors.added?(:available_to_admin, :inclusion, value: true) + ).to be(true) + end end