Skip to content

Commit 319cd2b

Browse files
author
Michael Yu
committed
MAGETWO-69657: Credit Card Information disappear after user enters promotion code
- Fix code formatting and documentation - Deep clone methodList to prevent side-effects in getAvailablePaymentMethods method - Fix cc-form and paypal-express test mocks
1 parent aad063d commit 319cd2b

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

app/code/Magento/Checkout/view/frontend/web/js/model/payment-service.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ define([
77
'underscore',
88
'Magento_Checkout/js/model/quote',
99
'Magento_Checkout/js/model/payment/method-list',
10-
'Magento_Checkout/js/action/select-payment-method'
11-
], function (_, quote, methodList, selectPaymentMethod) {
10+
'Magento_Checkout/js/action/select-payment-method',
11+
'mage/utils/objects'
12+
], function (_, quote, methodList, selectPaymentMethod, utils) {
1213
'use strict';
1314

1415
var freeMethodCode = 'free';
@@ -21,7 +22,6 @@ define([
2122
* @param {Array} methods
2223
*/
2324
setPaymentMethods: function (methods) {
24-
2525
var freeMethod,
2626
filteredMethods,
2727
methodIsAvailable,
@@ -36,6 +36,7 @@ define([
3636
methods.splice(0, methods.length, freeMethod);
3737
selectPaymentMethod(freeMethod);
3838
}
39+
3940
filteredMethods = _.without(methods, freeMethod);
4041

4142
if (filteredMethods.length === 1) {
@@ -71,20 +72,26 @@ define([
7172
* @returns {Array}
7273
*/
7374
getAvailablePaymentMethods: function () {
74-
var allMethods = methodList(),
75+
var allMethods = utils.copy(methodList()),
76+
77+
/**
78+
* Free method filter
79+
* @param {Object} method
80+
*/
7581
isFreeMethod = function (method) {
7682
return method.method === freeMethodCode;
7783
},
7884
grandTotalOverZero = quote.totals().grand_total > 0;
7985

8086
if (!self.isFreeAvailable) {
8187
return allMethods;
82-
} else if (grandTotalOverZero) {
88+
}
89+
90+
if (grandTotalOverZero) {
8391
return _.filter(allMethods, _.negate(isFreeMethod));
84-
} else {
85-
return _.filter(allMethods, isFreeMethod);
8692
}
8793

94+
return _.filter(allMethods, isFreeMethod);
8895
}
8996
};
9097
});

dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ define([
1818
'Magento_Checkout/js/model/quote': {
1919
billingAddress: ko.observable(),
2020
shippingAddress: ko.observable(),
21-
paymentMethod: ko.observable()
21+
paymentMethod: ko.observable(),
22+
totals: ko.observable({})
2223
},
2324
'Magento_Braintree/js/view/payment/validator-handler': jasmine.createSpyObj(
2425
'validator-handler',

dev/tests/js/jasmine/tests/app/code/Magento/Paypal/frontend/js/view/payment/method-renderer/paypal-express-abstract.test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ define([
2020
'Magento_Checkout/js/model/quote': {
2121
billingAddress: ko.observable(),
2222
shippingAddress: ko.observable(),
23-
paymentMethod: ko.observable()
23+
paymentMethod: ko.observable(),
24+
totals: ko.observable({})
25+
2426
}
2527
},
2628
paypalExpressAbstract,

0 commit comments

Comments
 (0)