Merge pull request #23788 from edx/shortcct-digest-pref-call

Short Circuit Digest preferences call on Discussion Home Page
This commit is contained in:
Awais Jibran
2020-04-24 19:52:11 +05:00
committed by GitHub
2 changed files with 36 additions and 4 deletions

View File

@@ -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(),

View File

@@ -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);