Merge pull request #23788 from edx/shortcct-digest-pref-call
Short Circuit Digest preferences call on Discussion Home Page
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user