From 968448cea22364f1fd423cedc54cf6d8a0f2e09e Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 2 Jul 2013 12:52:16 +0200 Subject: billing: update customer records - do not create new ones --- .../test/functional/customer_controller_test.rb | 29 +++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'billing/test/functional/customer_controller_test.rb') diff --git a/billing/test/functional/customer_controller_test.rb b/billing/test/functional/customer_controller_test.rb index 86d40fd..af09a41 100644 --- a/billing/test/functional/customer_controller_test.rb +++ b/billing/test/functional/customer_controller_test.rb @@ -20,10 +20,10 @@ class CustomerControllerTest < ActionController::TestCase assert_redirected_to login_path end - test "edit uses current_user" do + test "edit uses params[:id]" do customer = FactoryGirl.create :customer_with_payment_info login customer.user - get :edit, id: :unused + get :edit, id: customer.id assert_response :success assert assigns(:tr_data) @@ -37,7 +37,10 @@ class CustomerControllerTest < ActionController::TestCase to_confirm = prepare_confirmation :create_customer_data, customer: FactoryGirl.attributes_for(:braintree_customer), redirect_url: confirm_customer_url - post :confirm, to_confirm + + assert_difference("Customer.count") do + post :confirm, to_confirm + end assert_response :success assert result = assigns(:result) @@ -45,6 +48,21 @@ class CustomerControllerTest < ActionController::TestCase assert result.customer.id end + test "customer update" do + @customer = FactoryGirl.create :customer_with_payment_info + login @customer.user + Braintree::TransparentRedirect.expects(:confirm).returns(success_response) + + assert_no_difference("Customer.count") do + post :confirm, query: :from_braintree + end + + assert_response :success + assert result = assigns(:result) + assert result.success? + assert_equal @customer, result.customer + end + test "failed user creation" do skip "can't get user creation to fail" login @@ -89,6 +107,11 @@ class CustomerControllerTest < ActionController::TestCase params: {} end + def success_response + stub success?: true, + customer: @customer.with_braintree_data! + end + def post_transparent_redirect(type, data) params = data.dup params[:tr_data] = Braintree::TransparentRedirect.send(type, params) -- cgit v1.2.3