mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 01:16:19 +00:00
In the early days of the node tests we didn't have an index.js driver, so each test set it up its own environment. That ship has long since sailed, so now we just require assert in index.js as a global and make it so that the linter doesn't complain. (imported from commit 1ded3d330ff40603cf4dd7c5578f6a47088d7cc8)
119 lines
2.6 KiB
JavaScript
119 lines
2.6 KiB
JavaScript
// These unit tests for static/js/message_list.js emphasize the model-ish
|
|
// aspects of the MessageList class. We have to stub out a few functions
|
|
// related to views and events to get the tests working.
|
|
|
|
add_dependencies({
|
|
util: 'js/util.js',
|
|
muting: 'js/muting.js',
|
|
MessageListView: 'js/message_list_view.js'
|
|
});
|
|
|
|
|
|
set_global('document', null);
|
|
set_global('$', function () {
|
|
return {
|
|
on: function () {},
|
|
trigger: function () {}
|
|
};
|
|
});
|
|
|
|
set_global('feature_flags', {});
|
|
|
|
var MessageList = require('js/message_list');
|
|
|
|
(function test_basics() {
|
|
var table;
|
|
var filter = {};
|
|
|
|
var list = new MessageList(table, filter);
|
|
|
|
var messages = [
|
|
{
|
|
id: 50,
|
|
content: 'fifty'
|
|
},
|
|
{
|
|
id: 60
|
|
},
|
|
{
|
|
id: 70
|
|
},
|
|
{
|
|
id: 80
|
|
}
|
|
];
|
|
|
|
assert.equal(list.empty(), true);
|
|
|
|
list.append(messages, true);
|
|
|
|
assert.equal(list.empty(), false);
|
|
assert.equal(list.first().id, 50);
|
|
assert.equal(list.last().id, 80);
|
|
|
|
assert.equal(list.get(50).content, 'fifty');
|
|
|
|
assert.equal(list.closest_id(49), 50);
|
|
assert.equal(list.closest_id(50), 50);
|
|
assert.equal(list.closest_id(51), 50);
|
|
assert.equal(list.closest_id(59), 60);
|
|
assert.equal(list.closest_id(60), 60);
|
|
assert.equal(list.closest_id(61), 60);
|
|
|
|
assert.deepEqual(list.all(), messages);
|
|
|
|
global.$.Event = function (ev) {
|
|
assert.equal(ev, 'message_selected.zulip');
|
|
};
|
|
list.select_id(50);
|
|
|
|
assert.equal(list.selected_id(), 50);
|
|
|
|
list.advance_past_messages([60, 80]);
|
|
assert.equal(list.selected_id(), 60);
|
|
|
|
var old_messages = [
|
|
{
|
|
id: 30
|
|
},
|
|
{
|
|
id: 40
|
|
}
|
|
];
|
|
list.prepend(old_messages, true);
|
|
assert.equal(list.first().id, 30);
|
|
assert.equal(list.last().id, 80);
|
|
|
|
var new_messages = [
|
|
{
|
|
id: 90
|
|
}
|
|
];
|
|
list.append(new_messages, true);
|
|
assert.equal(list.last().id, 90);
|
|
|
|
list.view.clear_table = function () {};
|
|
|
|
list.remove_and_rerender([{id: 60}]);
|
|
var removed = list.all().filter(function (msg) {
|
|
return msg.id !== 60;
|
|
});
|
|
assert.deepEqual(list.all(), removed);
|
|
|
|
list.clear();
|
|
assert.deepEqual(list.all(), []);
|
|
|
|
}());
|
|
|
|
(function test_nth_most_recent_id() {
|
|
var table;
|
|
var filter = {};
|
|
|
|
var list = new MessageList(table, filter);
|
|
list.append([{id:10}, {id:20}, {id:30}]);
|
|
assert.equal(list.nth_most_recent_id(1), 30);
|
|
assert.equal(list.nth_most_recent_id(2), 20);
|
|
assert.equal(list.nth_most_recent_id(3), 10);
|
|
assert.equal(list.nth_most_recent_id(4), -1);
|
|
}());
|