diff options
4 files changed, 30 insertions, 15 deletions
| diff --git a/billing/test/functional/customer_controller_test.rb b/billing/test/functional/customer_controller_test.rb index d7f221e..d62ee95 100644 --- a/billing/test/functional/customer_controller_test.rb +++ b/billing/test/functional/customer_controller_test.rb @@ -69,6 +69,7 @@ class CustomerControllerTest < ActionController::TestCase      skip "can't get user creation to fail"      login      FakeBraintree.decline_all_cards! +    # what is prepare_confirmation ?? this method isn't found      to_confirm = prepare_confirmation :create_customer_data,        customer: FactoryGirl.attributes_for(:broken_customer),        redirect_url: confirm_customer_url diff --git a/billing/test/functional/customers_controller_test.rb b/billing/test/functional/customers_controller_test.rb index 02b3424..d4881bf 100644 --- a/billing/test/functional/customers_controller_test.rb +++ b/billing/test/functional/customers_controller_test.rb @@ -45,7 +45,7 @@ class CustomersControllerTest < ActionController::TestCase      login @other_user      get :new      assert_response :redirect -    assert_equal edit_customer_url(@customer.user), response.header['Location'] #todo should pass user not customer +    assert_equal edit_customer_url(@customer.user), response.header['Location']    end diff --git a/billing/test/integration/admin_customer_test.rb b/billing/test/integration/admin_customer_test.rb index 1145ef4..5169d85 100644 --- a/billing/test/integration/admin_customer_test.rb +++ b/billing/test/integration/admin_customer_test.rb @@ -29,16 +29,8 @@ class CustomerCreationTest < ActionDispatch::IntegrationTest    end    test "check customer as admin" do -=begin - -    login_as @admin -    visit '/' -    click_link 'Users' -    click_link @user.login -    click_link 'Billing Settings' -    assert page.has_content? @user.email_address -    assert !page.has_content?('No Saved Customer') -    save_and_open_page -=end +    skip "cannot check customer as admin" +    # it would be good to have a test where an admin tries to view the 'Billing Settings' for another user. +    # However, partially due to limitations of FakeBraintree, this doesn't seem pursuing at this time.    end  end 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) | 
