Skip to content

Commit 1796357

Browse files
committed
Merge pull request stripe-ruby-mock#51 from bfcoder/update_card
Added update card method and specs
2 parents 91e1b5c + 4d2dfe3 commit 1796357

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lib/stripe_mock/request_handlers/cards.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ def Cards.included(klass)
66
klass.add_handler 'post /v1/customers/(.*)/cards', :create_card
77
klass.add_handler 'get /v1/customers/(.*)/cards/(.*)', :retrieve_card
88
klass.add_handler 'delete /v1/customers/(.*)/cards/(.*)', :delete_card
9+
klass.add_handler 'post /v1/customers/(.*)/cards/(.*)', :update_card
910
end
1011

1112
def create_card(route, method_url, params, headers)
@@ -42,6 +43,17 @@ def delete_card(route, method_url, params, headers)
4243
card
4344
end
4445

46+
def update_card(route, method_url, params, headers)
47+
route =~ method_url
48+
49+
customer = customers[$1]
50+
assert_existance :customer, $1, customer
51+
card = get_customer_card(customer, $2)
52+
assert_existance :card, $2, card
53+
card.merge!(params)
54+
card
55+
end
56+
4557
private
4658

4759
def validate_card(card)

spec/shared_stripe_examples/card_examples.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,25 @@
7171
it "updates the default card if deleted"
7272

7373
end
74+
75+
context "update card" do
76+
let!(:customer) { Stripe::Customer.create(id: 'test_customer_sub') }
77+
let!(:card_token) { StripeMock.generate_card_token(last4: "1123", exp_month: 11, exp_year: 2099) }
78+
let!(:card) { customer.cards.create(card: card_token) }
79+
80+
it "updates the card" do
81+
exp_month = 10
82+
exp_year = 2098
83+
84+
card.exp_month = exp_month
85+
card.exp_year = exp_year
86+
card.save
87+
88+
retrieved = customer.cards.retrieve(card.id)
89+
90+
expect(retrieved.exp_month).to eq(exp_month)
91+
expect(retrieved.exp_year).to eq(exp_year)
92+
end
93+
end
94+
7495
end

0 commit comments

Comments
 (0)