diff --git a/lms/djangoapps/discussion/static/discussion/js/spec/discussion_board_view_spec.js b/lms/djangoapps/discussion/static/discussion/js/spec/discussion_board_view_spec.js index e63caf4a25..9905bc0804 100644 --- a/lms/djangoapps/discussion/static/discussion/js/spec/discussion_board_view_spec.js +++ b/lms/djangoapps/discussion/static/discussion/js/spec/discussion_board_view_spec.js @@ -1,4 +1,4 @@ -/* globals Discussion, DiscussionCourseSettings */ +/* globals Discussion, DiscussionCourseSettings, DiscussionUser, DiscussionUtil */ (function(define) { 'use strict'; define( @@ -26,10 +26,33 @@ discussion: discussion, courseSettings: courseSettings }); + window.ENABLE_FORUM_DAILY_DIGEST = true; + window.user = new DiscussionUser({ + id: 99 + }); return discussionBoardView; }; + describe('goHome view', function() { + it('Ensure no ajax request when digests are unavailable', function() { + var discussionBoardView = createDiscussionBoardView(); + spyOn(DiscussionUtil, 'safeAjax').and.callThrough(); + window.ENABLE_FORUM_DAILY_DIGEST = false; + + discussionBoardView.goHome(); + expect(DiscussionUtil.safeAjax).not.toHaveBeenCalled(); + }); + it('Verify the ajax request when digests are available', function() { + var discussionBoardView = createDiscussionBoardView(); + discussionBoardView.render(); + spyOn(DiscussionUtil, 'safeAjax').and.callThrough(); + + discussionBoardView.goHome(); + expect(DiscussionUtil.safeAjax).toHaveBeenCalled(); + }); + }); + describe('Thread List View', function() { it('should ensure the mode is all', function() { var discussionBoardView = createDiscussionBoardView().render(), diff --git a/lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js b/lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js index 73cd76b665..1e55ae459f 100644 --- a/lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js +++ b/lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js @@ -133,13 +133,22 @@ }, goHome: function() { - var url = DiscussionUtil.urlFor('notifications_status', window.user.get('id')); HtmlUtils.append(this.$('.forum-content').empty(), HtmlUtils.template(discussionHomeTemplate)({})); this.$('.forum-nav-thread-list a').removeClass('is-active').find('.sr') - .remove(); + .remove(); + this.setupForumDigestSettings(window.user.get('id')); + }, + setupForumDigestSettings: function(userId) { + if (window.ENABLE_FORUM_DAILY_DIGEST === false) { + return; + } this.$('input.email-setting').bind('click', this.discussionThreadListView.updateEmailNotifications); + this.getUserNotificationSettings(userId); + }, + + getUserNotificationSettings: function(userId) { DiscussionUtil.safeAjax({ - url: url, + url: DiscussionUtil.urlFor('notifications_status', userId), type: 'GET', success: function(response) { $('input.email-setting').prop('checked', response.status);