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.js38
1 files changed, 38 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
index bf7a2db4..972ca3ae 100644
--- a/web-ui/test/spec/helpers/monitored_ajax_call.spec.js
+++ b/web-ui/test/spec/helpers/monitored_ajax_call.spec.js
@@ -35,6 +35,44 @@ define(['helpers/monitored_ajax'], function (monitoredAjax) {
expect(component.trigger).toHaveBeenCalledWith(document, Pixelated.events.ui.userAlerts.displayMessage,
{ message: 'Server Message' });
});
+ });
+
+ describe('when user seems to be logged out', function () {
+ var component, browser;
+
+ beforeEach(function () {
+ component = { trigger: function () {}};
+ browser = require('helpers/browser');
+
+ });
+
+ it('will redirect the browser to the location specified', function () {
+ var redirectUrl = '/some/redirect/url';
+ var deferred = $.Deferred();
+ spyOn($, 'ajax').and.returnValue(deferred);
+ var spyRedirect = spyOn(browser, 'redirect').and.returnValue($.Deferred());
+
+ monitoredAjax(component, '/some/url', {});
+
+ deferred.reject({status: 302, getResponseHeader: function (_) {return redirectUrl;}}, '', '');
+
+ expect(spyRedirect).toHaveBeenCalled();
+ expect(spyRedirect.calls.mostRecent().args[0]).toEqual(redirectUrl);
+ });
+
+ it ('will redirect the browser to root if authentication is required', function () {
+ var redirectUrl = '/';
+ var deferred = $.Deferred();
+ spyOn($, 'ajax').and.returnValue(deferred);
+ var spyRedirect = spyOn(browser, 'redirect').and.returnValue($.Deferred());
+
+ monitoredAjax(component, '/some/url', {});
+
+ deferred.reject({status: 401}, '', '');
+
+ expect(spyRedirect).toHaveBeenCalled();
+ expect(spyRedirect.calls.mostRecent().args[0]).toEqual(redirectUrl);
+ });
});
});