mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Add default_card method to user model
This commit is contained in:
committed by
Maikel Linke
parent
09534b41e9
commit
fc2844a3d5
@@ -73,6 +73,10 @@ Spree.user_class.class_eval do
|
||||
owned_enterprises(:reload).size < enterprise_limit
|
||||
end
|
||||
|
||||
def default_card
|
||||
credit_cards.where(is_default: true).first
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def limit_owned_enterprises
|
||||
|
||||
@@ -126,4 +126,32 @@ describe Spree.user_class do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "default_card" do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
context "when the user has no credit cards" do
|
||||
it "returns nil" do
|
||||
expect(user.default_card).to be nil
|
||||
end
|
||||
end
|
||||
|
||||
context "when the user has one credit card" do
|
||||
let!(:card) { create(:credit_card, user: user) }
|
||||
|
||||
it "should be assigned as the default and be returned" do
|
||||
expect(card.reload.is_default).to be true
|
||||
expect(user.default_card.id).to be card.id
|
||||
end
|
||||
end
|
||||
|
||||
context "when the user has more than one card" do
|
||||
let!(:non_default_card) { create(:credit_card, user: user) }
|
||||
let!(:default_card) { create(:credit_card, user: user, is_default: true) }
|
||||
|
||||
it "returns the card which is specified as the default" do
|
||||
expect(user.default_card.id).to be default_card.id
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user