summaryrefslogtreecommitdiff
path: root/web-ui/test/spec/helpers/monitored_ajax_call.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/test/spec/helpers/monitored_ajax_call.spec.js')
-rw-r--r--web-ui/test/spec/helpers/monitored_ajax_call.spec.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/web-ui/test/spec/helpers/monitored_ajax_call.spec.js b/web-ui/test/spec/helpers/monitored_ajax_call.spec.js
new file mode 100644
index 00000000..bf7a2db4
--- /dev/null
+++ b/web-ui/test/spec/helpers/monitored_ajax_call.spec.js
@@ -0,0 +1,41 @@
+define(['helpers/monitored_ajax'], function (monitoredAjax) {
+ 'use strict';
+ describe('monitoredAjaxCall', function () {
+ describe('when dealing with errors', function () {
+
+ _.each(
+ {
+ timeout: 'a timeout occurred',
+ error: 'problems talking to server',
+ parseerror: 'got invalid response from server'
+ }, function (errorMessage, errorType) {
+ it('shows message for a server ' + errorType, function () {
+ var component = { trigger: function () {}};
+ spyOn(component, 'trigger');
+ var d = $.Deferred();
+ spyOn($, 'ajax').and.returnValue(d);
+
+ monitoredAjax(component, '/', {});
+ d.reject({ responseJSON: {}}, errorType, '');
+
+ expect(component.trigger).toHaveBeenCalledWith(document, Pixelated.events.ui.userAlerts.displayMessage,
+ { message: errorMessage });
+ });
+ });
+
+ it('shows the error message sent by the server if it exists', function () {
+ var component = { trigger: function () {}};
+ spyOn(component, 'trigger');
+ var d = $.Deferred();
+ spyOn($, 'ajax').and.returnValue(d);
+
+ monitoredAjax(component, '/', {});
+ d.reject({ responseJSON: { message: 'Server Message'}}, 'error', '');
+
+ expect(component.trigger).toHaveBeenCalledWith(document, Pixelated.events.ui.userAlerts.displayMessage,
+ { message: 'Server Message' });
+ });
+
+ });
+ });
+}); \ No newline at end of file