Skip to content

Instantly share code, notes, and snippets.

@mguterl
Forked from mattvv/credit_card_helper.rb
Created July 1, 2014 13:21
Show Gist options
  • Save mguterl/f598da5376b9134d60fe to your computer and use it in GitHub Desktop.
Save mguterl/f598da5376b9134d60fe to your computer and use it in GitHub Desktop.
#this is a very simple, work in progress helper method for stubbing the stripe checkout.js
#this creates a fake server that will generate stripe token as if it's coming from stripe. So we can test credit card input
class FakeStripe < Sinatra::Base
def self.boot
instance = new
Capybara::Server.new(instance).tap { |server| server.boot }
end
get '/checkout.js' do
#generate a fake token from stripe as if the user entered a card
StripeMock.start
token = StripeMock.generate_card_token(last4: '4242', exp_year: 2020)
"$(document).ready(function() {
$('.stripe-button').replaceWith(function() {
return \"<div id='stripeForm'></div>\";
});
$(\"<input type='hidden' id='stripeToken' name='stripeToken' value='#{token}'>\").appendTo('#stripeForm');
$(\"<input name='commit' type='submit' value='Submit'/>\").appendTo('#stripeForm');
});"
end
end
server = FakeStripe.boot
Stripe.api_base = "http://#{server.host}:#{server.port}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment