diff --git a/static/js/stream_list.js b/static/js/stream_list.js index 1a1fd11439..f97799b634 100644 --- a/static/js/stream_list.js +++ b/static/js/stream_list.js @@ -149,6 +149,16 @@ function add_narrow_filter(name, type) { return build_narrow_filter(name, type); } +// This is a testing shim for now, but the goal is to replace +// add_narrow_filter() with this API. +exports.add_stream_to_sidebar = function (stream_name) { + return add_narrow_filter(stream_name, 'stream'); +}; + +exports.get_stream_li = function (stream_name) { + return get_filter_li('stream', stream_name); +}; + exports.get_count = function (type, name) { return get_filter_li(type, name).find('.count .value').text(); }; diff --git a/zerver/tests/frontend/node/stream_list.js b/zerver/tests/frontend/node/stream_list.js index d6b79bc246..11f21f46b2 100644 --- a/zerver/tests/frontend/node/stream_list.js +++ b/zerver/tests/frontend/node/stream_list.js @@ -1,5 +1,7 @@ var assert = require('assert'); +set_global('$', function () {}); + add_dependencies({ _: 'third/underscore/underscore', Dict: 'js/dict', @@ -7,18 +9,25 @@ add_dependencies({ templates: 'js/templates', muting: 'js/muting', narrow: 'js/narrow', + stream_color: 'js/stream_color', + stream_data: 'js/stream_data', + subs: 'js/subs', hashchange: 'js/hashchange' }); set_global('recent_subjects', new global.Dict()); set_global('unread', {}); -set_global('$', function () {}); var stream_list = require('js/stream_list.js'); global.$ = require('jquery'); +$.fn.expectOne = function () { + assert(this.length === 1); + return this; +}; global.use_template('sidebar_subject_list'); +global.use_template('stream_sidebar_row'); (function test_build_subject_list() { var stream = "devel"; @@ -39,3 +48,40 @@ global.use_template('sidebar_subject_list'); var topic = $(topic_html).find('a').text().trim(); assert.equal(topic, 'coding'); }()); + +(function test_add_stream_to_sidebar() { + // Make a couple calls to add_stream_to_sidebar() and make sure they + // generate the right markup as well as play nice with get_stream_li(). + + var stream_filters = $('