From 1e4245907ca17d1d6afbeca82b25c35c970ba499 Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 2 Jul 2013 17:14:32 +0200 Subject: billing: functional test for payments controller --- billing/app/controllers/payments_controller.rb | 11 ++++++----- billing/app/models/customer.rb | 2 +- billing/app/views/customer/edit.html.haml | 4 ++-- billing/app/views/payments/_customer_data.html.haml | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) (limited to 'billing/app') diff --git a/billing/app/controllers/payments_controller.rb b/billing/app/controllers/payments_controller.rb index 97e0353..99b7af8 100644 --- a/billing/app/controllers/payments_controller.rb +++ b/billing/app/controllers/payments_controller.rb @@ -1,4 +1,4 @@ -class PaymentsController < ApplicationController +class PaymentsController < BillingBaseController before_filter :authorize, :only => [:index] def new @@ -28,17 +28,18 @@ class PaymentsController < ApplicationController def fetch_transparent_redirect if current_user if @customer = Customer.find_by_user_id(current_user.id) - @braintree_data = Braintree::Customer.find(@customer.braintree_customer_id) - @default_cc = @customer.default_credit_card(@braintree_data) + @customer.with_braintree_data! braintree_customer_id = @customer.braintree_customer_id + @default_cc = @customer.default_credit_card else # TODO: this requires user to add self to vault before making payment. Is that desired functionality? redirect_to new_customer_path, :notice => 'Before making payment, please add your customer data' end end - @tr_data = Braintree::TransparentRedirect.transaction_data(:redirect_url => confirm_payment_url, - :transaction => {:type => "sale", :customer_id => braintree_customer_id, :options => {:submit_for_settlement => true } }) + # TODO: What is this supposed to do if braintree_customer_id was not set yet? + @tr_data = Braintree::TransparentRedirect.transaction_data redirect_url: confirm_payment_url, + transaction: { type: "sale", customer_id: braintree_customer_id, options: {submit_for_settlement: true } } end end diff --git a/billing/app/models/customer.rb b/billing/app/models/customer.rb index 747f17f..515e204 100644 --- a/billing/app/models/customer.rb +++ b/billing/app/models/customer.rb @@ -33,7 +33,7 @@ class Customer < CouchRest::Model::Base self end - def default_credit_card(braintree_data = nil) + def default_credit_card return unless has_payment_info? credit_cards.find { |cc| cc.default? } diff --git a/billing/app/views/customer/edit.html.haml b/billing/app/views/customer/edit.html.haml index dfc932e..f11e948 100644 --- a/billing/app/views/customer/edit.html.haml +++ b/billing/app/views/customer/edit.html.haml @@ -2,7 +2,7 @@ #total-errors{:style => "color:red;"} = h(@result.errors.size) error(s) -= form_for :customer, :url => Braintree::TransparentRedirect.url, :params => @result && @result.params[:customer],:existing => @customer, :builder => BraintreeHelper::BraintreeFormBuilder, :errors => @result && @result.errors.for(:customer) do |f| | += form_for :customer, url: Braintree::TransparentRedirect.url, params: @result && @result.params[:customer], existing: @customer, builder: BraintreeFormHelper::BraintreeFormBuilder, errors: @result && @result.errors.for(:customer) do |f| | = field_set_tag "Customer" do %dl %dt= f.label :first_name, 'First Name' @@ -19,4 +19,4 @@ = link_to 'Change credit card', edit_credit_card_info_path(:id => @default_cc.token), :class => :btn = hidden_field_tag :tr_data, @tr_data = f.submit 'Save Customer Info', :class => :btn -= link_to 'Show Customer Information', show_customer_path(@braintree_data.id), :class=> :btn \ No newline at end of file += link_to 'Show Customer Information', show_customer_path(@customer), :class=> :btn diff --git a/billing/app/views/payments/_customer_data.html.haml b/billing/app/views/payments/_customer_data.html.haml index d46065c..71a5eaf 100644 --- a/billing/app/views/payments/_customer_data.html.haml +++ b/billing/app/views/payments/_customer_data.html.haml @@ -1,15 +1,15 @@ %h2 Customer Information %dl %dt First Name - %dd= @braintree_data.first_name + %dd= @customer.first_name %dt Last Name - %dd= @braintree_data.last_name + %dd= @customer.last_name %dt Phone - %dd= @braintree_data.phone + %dd= @customer.phone %h2 Credit Card Information %dl %dt Number %dd= @default_cc.masked_number %dt Expiration Date %dd= @default_cc.expiration_date -= link_to 'Edit Saved Data', edit_customer_path(@customer.braintree_customer_id), :class => :btn += link_to 'Edit Saved Data', edit_customer_path(@customer), :class => :btn -- cgit v1.2.3