Only Transfers is fully stubbed out.
Add this line to your application's Gemfile:
gem 'stripe_mock', require: false
And then execute:
$ bundle
Or install it yourself as:
$ gem install stripe_mock
StripeMock uses Webmock to hijack the request to the Stripe servers and return the corresponding Stripe response.
To capture requests to Strip simply add these lines to your spec file
before(:all) do
StripeMock.capture_requests
end
To get a mocked response, just use the Stripe gem as you normally would.
Stipe::Transfer.all
# #<Stripe::ListObject:0x3fe634d74498> JSON: {
# "object": "list",
# "url": "/v1/transfers",
# "has_more": false,
# "data": [
# #<Stripe::Transfer id=tr_16DA2VCKrsNpguPAW93AVKPk 0x00000a> JSON: {
# "id": "tr_16DA2VCKrsNpguPAW93AVKPk",
# "object": "transfer",
# "created": 1434184255,
# "date": 1434240000,
# ...
# },
# #<Stripe::Transfer[...] ...>,
# #<Stripe::Transfer[...] ...>
# ]
# }
To get the transfer failure_code filled in, just use the desired failure_code as the id of the transfer. EX:
Stripe::Transfer.retrieve('insufficient_funds')
All codes are listed here: https://stripe.com/docs/api/ruby#transfer_failures
Bug reports and pull requests are welcome on GitHub at https://github.com/digitalopera/stripe_mock.
The gem is available as open source under the terms of the MIT License.