From d948614d3e2bc190b9c819e961b94c03d7a24fcd Mon Sep 17 00:00:00 2001 From: jessib Date: Thu, 15 Aug 2013 12:09:26 -0700 Subject: Some notes on tests that don't work. (Failing tests are skipped though.) --- billing/test/integration/customer_creation_test.rb | 28 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'billing/test/integration/customer_creation_test.rb') diff --git a/billing/test/integration/customer_creation_test.rb b/billing/test/integration/customer_creation_test.rb index 532a5b5..9555ef1 100644 --- a/billing/test/integration/customer_creation_test.rb +++ b/billing/test/integration/customer_creation_test.rb @@ -18,22 +18,28 @@ class CustomerCreationTest < ActionDispatch::IntegrationTest # Let's test both steps together with capybara # - # This test is nice and clean but also a bit fragil: + # This test is nice and clean but also a bit fragile: # RackTest assumes all requests to be local. So we need # BraintreeTestApp for the braintree transparent redirect to work. + # + # this mystifies me why this works. when i type the click_button line (and the + # customer.braintree_customer line) in the debugger, it gives a timeout, + # but it works fine embedded in the test. test "create customer with braintree" do visit '/' click_link 'Billing Settings' + # i am a bit unclear why this works, as it seems there will be validation errors assert_difference("Customer.count") do - click_button 'Save Payment Info' + click_button 'Save Payment Info' # this gives me a timeout end - assert customer = Customer.find_by_user_id(@user.id) assert customer.braintree_customer end # We only test the confirmation here. # The request to Braintree is triggered outside of rails + # In skippped test below, we see this works even if the attributes are + # for a broken customer test "successfully confirms customer creation" do response = post_transparent_redirect :create_customer_data, customer: FactoryGirl.attributes_for(:braintree_customer), @@ -48,6 +54,22 @@ class CustomerCreationTest < ActionDispatch::IntegrationTest assert customer.braintree_customer end + + test "failed customer creation" do + skip "cannot get customer creation to fail" + + FakeBraintree.decline_all_cards! + response = post_transparent_redirect :create_customer_data, + customer: FactoryGirl.attributes_for(:broken_customer), + redirect_url: confirm_customer_url + + assert_no_difference("Customer.count") do + post response['Location'] #this gives me a timeout when run alone + end + assert_nil Customer.find_by_user_id(@user.id) + + end + def post_transparent_redirect(type, data) params = data.dup params[:tr_data] = Braintree::TransparentRedirect.send(type, params) -- cgit v1.2.3