From fc3402bbd05272989b001663491e756ff822f092 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Wed, 4 Jun 2014 16:55:27 +1000 Subject: [PATCH] Determine whether to send card field attributes by payment method type --- app/assets/javascripts/darkswarm/services/order.js.coffee | 2 +- app/views/checkout/_order.rabl | 3 ++- .../unit/darkswarm/services/order_spec.js.coffee | 8 ++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/darkswarm/services/order.js.coffee b/app/assets/javascripts/darkswarm/services/order.js.coffee index 80f639dcf2..bde2373aec 100644 --- a/app/assets/javascripts/darkswarm/services/order.js.coffee +++ b/app/assets/javascripts/darkswarm/services/order.js.coffee @@ -32,7 +32,7 @@ Darkswarm.factory 'Order', ($resource, order, $http, CheckoutFormState, flash, N if CheckoutFormState.ship_address_same_as_billing munged_order.ship_address_attributes = munged_order.bill_address_attributes - if @secrets.card_number?.length > 0 + if @paymentMethod()?.method_type == 'gateway' angular.extend munged_order.payments_attributes[0], { source_attributes: number: @secrets.card_number diff --git a/app/views/checkout/_order.rabl b/app/views/checkout/_order.rabl index 36e5a98eed..f18c2e0173 100644 --- a/app/views/checkout/_order.rabl +++ b/app/views/checkout/_order.rabl @@ -30,7 +30,8 @@ end node :payment_methods do Hash[current_order.available_payment_methods.collect { |method| [method.id, { - name: method.name + name: method.name, + method_type: method.method_type }] }] end diff --git a/spec/javascripts/unit/darkswarm/services/order_spec.js.coffee b/spec/javascripts/unit/darkswarm/services/order_spec.js.coffee index c6d04087b9..d7233dae22 100644 --- a/spec/javascripts/unit/darkswarm/services/order_spec.js.coffee +++ b/spec/javascripts/unit/darkswarm/services/order_spec.js.coffee @@ -26,6 +26,10 @@ describe 'Order service', -> payment_methods: 99: test: "foo" + method_type: "gateway" + 123: + test: "bar" + method_type: "check" angular.module('Darkswarm').value('order', orderData) module 'Darkswarm' @@ -60,7 +64,7 @@ describe 'Order service', -> it 'Gets the current payment method', -> expect(Order.paymentMethod()).toEqual null Order.order.payment_method_id = 99 - expect(Order.paymentMethod()).toEqual {test: "foo"} + expect(Order.paymentMethod()).toEqual {test: "foo", method_type: "gateway"} it "Posts the Order to the server", -> $httpBackend.expectPUT("/checkout", {order: Order.preprocess()}).respond 200, {path: "test"} @@ -112,6 +116,6 @@ describe 'Order service', -> expect(source_attributes.last_name).toBe Order.order.bill_address.lastname it "does not create attributes for card fields when no card is supplied", -> - Order.secrets.card_number = '' + Order.order.payment_method_id = 123 source_attributes = Order.preprocess().payments_attributes[0].source_attributes expect(source_attributes).not.toBeDefined()