Skip to content

Commit

Permalink
fix(payment): PAYMENTS-889 Forward returnUrl of order instead of paym…
Browse files Browse the repository at this point in the history
…ent object if possible
  • Loading branch information
davidchin committed Apr 18, 2017
1 parent 1aba0ad commit 5cfe022
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/payment/mappers/map-to-payment.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default function mapToPayment(data) {
device_info: quoteMeta.request ? quoteMeta.request.deviceSessionId : null,
gateway: mapToId(paymentMethod),
notify_url: order.callbackUrl,
return_url: order.payment ? order.payment.returnUrl : null,
return_url: paymentMethod.returnUrl || (order.payment ? order.payment.returnUrl : null),
};

const nonce = payment.nonce || paymentMethod.nonce;
Expand Down
2 changes: 1 addition & 1 deletion src/payment/offsite-mappers/map-to-payload.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export default function mapToPayload(data) {
page_title: document.title,
payment_method_id: mapToId(paymentMethod),
reference_id: toString(order.orderId),
return_url: order.payment ? order.payment.returnUrl : null,
return_url: paymentMethod.returnUrl || (order.payment ? order.payment.returnUrl : null),
},
mapToBillingAddress(data),
mapToCustomer(data),
Expand Down
4 changes: 1 addition & 3 deletions test/mocks/payment-request-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@ const paymentRequestDataMock = {
integerAmount: 500,
},
orderId: '123',
payment: {
returnUrl: '/checkout',
},
shipping: {
integerAmount: 1000,
},
Expand All @@ -71,6 +68,7 @@ const paymentRequestDataMock = {
paymentMethod: {
id: 'paypalprous',
type: API,
returnUrl: '/checkout',
},
quoteMeta: {
request: {
Expand Down
15 changes: 13 additions & 2 deletions test/payment/mappers/map-to-payment.spec.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import omit from 'lodash/omit';
import merge from 'lodash/merge';
import * as mapToCreditCardModule from '../../../src/payment/mappers/map-to-credit-card';
import mapToPayment from '../../../src/payment/mappers/map-to-payment';
Expand All @@ -20,7 +21,7 @@ describe('mapToPayment', () => {
device_info: data.quoteMeta.request.deviceSessionId,
gateway: data.paymentMethod.id,
notify_url: data.order.callbackUrl,
return_url: data.order.payment.returnUrl,
return_url: data.paymentMethod.returnUrl,
});
});

Expand All @@ -40,7 +41,17 @@ describe('mapToPayment', () => {
device_info: data.quoteMeta.request.deviceSessionId,
gateway: data.paymentMethod.id,
notify_url: data.order.callbackUrl,
return_url: data.order.payment.returnUrl,
return_url: data.paymentMethod.returnUrl,
});
});

it('should use the return URL contained in the order object as a fallback', () => {
data = merge({}, data, {
paymentMethod: omit(data.paymentMethod, 'returnUrl'),
});

const output = mapToPayment(data);

expect(output.return_url).toEqual(data.paymentMethod.returnUrl);
});
});
13 changes: 12 additions & 1 deletion test/payment/offsite-mappers/map-to-payload.spec.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import omit from 'lodash/omit';
import merge from 'lodash/merge';
import * as mapToBillingAddressModule from '../../../src/payment/offsite-mappers/map-to-billing-address';
import * as mapToCustomerModule from '../../../src/payment/offsite-mappers/map-to-customer';
Expand Down Expand Up @@ -42,9 +43,19 @@ describe('mapToPayload', () => {
page_title: document.title,
payment_method_id: data.paymentMethod.id,
reference_id: data.order.orderId,
return_url: data.order.payment.returnUrl,
return_url: data.paymentMethod.returnUrl,
shippingAddress: 'shippingAddress',
store: 'store',
});
});

it('should use the return URL contained in the order object as a fallback', () => {
data = merge({}, data, {
paymentMethod: omit(data.paymentMethod, 'returnUrl'),
});

const output = mapToPayload(data);

expect(output.return_url).toEqual(data.paymentMethod.returnUrl);
});
});

0 comments on commit 5cfe022

Please sign in to comment.