Commit 284dc7a3 by Peter Fogg

Display an error message if no payment processors are available.

Otto is gaining the ability to temporarily disable payment
processors. If all are disabled, no checkout buttons will appear on
the payment page, and so we need to communicate to the user that they
cann't pay right now but should try again later.

ECOM-2346
parent 1870d4e5
...@@ -206,6 +206,16 @@ define([ ...@@ -206,6 +206,16 @@ define([
expectPaymentButtonEnabled( true ); expectPaymentButtonEnabled( true );
}); });
it('displays an error if no payment processors are available', function () {
var view = createView({processors: []});
expect(view.errorModel.get('shown')).toBe(true);
expect(view.errorModel.get('errorTitle')).toEqual(
"We're currently experiencing technical problems."
);
expect(view.errorModel.get('errorMsg')).toEqual(
'Try the transaction again in a few minutes.'
);
});
}); });
} }
); );
...@@ -56,7 +56,8 @@ define(['jquery', 'common/js/spec_helpers/template_helpers', 'js/verify_student/ ...@@ -56,7 +56,8 @@ define(['jquery', 'common/js/spec_helpers/template_helpers', 'js/verify_student/
var createView = function( displaySteps, currentStep ) { var createView = function( displaySteps, currentStep ) {
return new PayAndVerifyView({ return new PayAndVerifyView({
displaySteps: displaySteps, displaySteps: displaySteps,
currentStep: currentStep currentStep: currentStep,
errorModel: new ( Backbone.Model.extend({}) )()
}).render(); }).render();
}; };
......
...@@ -105,10 +105,20 @@ var edx = edx || {}; ...@@ -105,10 +105,20 @@ var edx = edx || {};
self._getProductText( templateContext.courseModeSlug, templateContext.upgrade ) self._getProductText( templateContext.courseModeSlug, templateContext.upgrade )
); );
// create a button for each payment processor if (processors.length === 0) {
_.each(processors.reverse(), function(processorName) { // No payment processors are enabled at the moment, so show an error message
$( 'div.payment-buttons' ).append( self._getPaymentButtonHtml(processorName) ); this.errorModel.set({
}); errorTitle: gettext("We're currently experiencing technical problems."),
errorMsg: gettext('Try the transaction again in a few minutes.'),
shown: true
})
}
else {
// create a button for each payment processor
_.each(processors.reverse(), function(processorName) {
$( 'div.payment-buttons' ).append( self._getPaymentButtonHtml(processorName) );
});
}
// Handle payment submission // Handle payment submission
$( '.payment-button' ).on( 'click', _.bind( this.createOrder, this ) ); $( '.payment-button' ).on( 'click', _.bind( this.createOrder, this ) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment