Skip to content

Commit 6d7ee26

Browse files
MAGETWO-86112: Fix #12900: Braintree "Place Order" button is disabled after failed validation #12902
2 parents 92520d3 + 737d0d2 commit 6d7ee26

File tree

2 files changed

+28
-8
lines changed
  • app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer
  • dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer

2 files changed

+28
-8
lines changed

app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ define(
7979
*/
8080
onError: function (response) {
8181
braintree.showError($t('Payment ' + this.getTitle() + ' can\'t be initialized'));
82+
this.isPlaceOrderActionAllowed(true);
8283
throw response.message;
8384
},
8485

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

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ define([
2727
),
2828
'Magento_Braintree/js/view/payment/adapter': jasmine.createSpyObj(
2929
'adapter',
30-
['setup', 'setConfig']
30+
['setup', 'setConfig', 'showError']
3131
)
3232
},
3333
braintreeCcForm;
@@ -43,14 +43,17 @@ define([
4343
};
4444
injector.mock(mocks);
4545
injector.require(['Magento_Braintree/js/view/payment/method-renderer/cc-form'], function (Constr) {
46-
braintreeCcForm = new Constr({
47-
provider: 'provName',
48-
name: 'test',
49-
index: 'test'
50-
});
51-
52-
done();
46+
braintreeCcForm = new Constr({
47+
provider: 'provName',
48+
name: 'test',
49+
index: 'test',
50+
item: {
51+
title: 'Braintree'
52+
}
5353
});
54+
55+
done();
56+
});
5457
});
5558

5659
it('Check if payment code and message container are restored after onActiveChange call.', function () {
@@ -65,5 +68,21 @@ define([
6568
expect(braintreeCcForm.getCode()).toEqual(expectedCode);
6669
expect(braintreeCcForm.messageContainer).toEqual(expectedMessageContainer);
6770
});
71+
72+
it('Check if form validation fails when "Place Order" button should be active.', function () {
73+
var errorMessage = 'Something went wrong.',
74+
75+
/**
76+
* Anonymous wrapper
77+
*/
78+
func = function () {
79+
braintreeCcForm.clientConfig.onError({
80+
'message': errorMessage
81+
});
82+
};
83+
84+
expect(func).toThrow(errorMessage);
85+
expect(braintreeCcForm.isPlaceOrderActionAllowed()).toBeTruthy();
86+
});
6887
});
6988
});

0 commit comments

Comments
 (0)