mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 12:54:58 +00:00
Add a method that lets us know what percentage of a huddle is present. (We can use this later to set the opacity of huddles in the UI.) (imported from commit 8a2383951807d7bfbf9d730a8980d977cf23b379)
123 lines
2.7 KiB
JavaScript
123 lines
2.7 KiB
JavaScript
var assert = require('assert');
|
|
|
|
add_dependencies({
|
|
_: 'third/underscore/underscore.js',
|
|
util: 'js/util.js',
|
|
Dict: 'js/dict.js'
|
|
});
|
|
|
|
set_global('$', function () {
|
|
return {
|
|
on: function () {
|
|
return;
|
|
}
|
|
};
|
|
});
|
|
|
|
set_global('document', {
|
|
hasFocus: function () {
|
|
return true;
|
|
}
|
|
});
|
|
|
|
set_global('people_dict', new global.Dict.from({
|
|
'alice@zulip.com': {
|
|
full_name: 'Alice Smith'
|
|
},
|
|
'fred@zulip.com': {
|
|
full_name: "Fred Flintstone"
|
|
},
|
|
'jill@zulip.com': {
|
|
full_name: 'Jill Hill'
|
|
}
|
|
}));
|
|
|
|
var activity = require('js/activity.js');
|
|
|
|
(function test_sort_users() {
|
|
var users = ['alice@zulip.com', 'fred@zulip.com', 'jill@zulip.com'];
|
|
|
|
var user_info = {
|
|
'alice@zulip.com': 'inactive',
|
|
'fred@zulip.com': 'active',
|
|
'jill@zulip.com': 'active'
|
|
};
|
|
|
|
activity._sort_users(users, user_info);
|
|
|
|
assert.deepEqual(users, [
|
|
'fred@zulip.com',
|
|
'jill@zulip.com',
|
|
'alice@zulip.com'
|
|
]);
|
|
}());
|
|
|
|
(function test_process_loaded_messages() {
|
|
|
|
var huddle1 = 'bar@zulip.com,foo@zulip.com';
|
|
var timestamp1 = 1382479029; // older
|
|
|
|
var huddle2 = 'alice@zulip.com,bob@zulip.com';
|
|
var timestamp2 = 1382479033; // newer
|
|
|
|
var old_timestamp = 1382479000;
|
|
|
|
var messages = [
|
|
{
|
|
type: 'private',
|
|
reply_to: huddle1,
|
|
timestamp: timestamp1
|
|
},
|
|
{
|
|
type: 'stream'
|
|
},
|
|
{
|
|
type: 'private',
|
|
reply_to: 'ignore@zulip.com'
|
|
},
|
|
{
|
|
type: 'private',
|
|
reply_to: huddle2,
|
|
timestamp: timestamp2
|
|
},
|
|
{
|
|
type: 'private',
|
|
reply_to: huddle2,
|
|
timestamp: old_timestamp
|
|
}
|
|
];
|
|
|
|
activity.process_loaded_messages(messages);
|
|
|
|
assert.deepEqual(activity.get_huddles(), [huddle2, huddle1]);
|
|
}());
|
|
|
|
(function test_full_huddle_name() {
|
|
assert.equal(
|
|
activity.full_huddle_name('alice@zulip.com,jill@zulip.com'),
|
|
'Alice Smith, Jill Hill'
|
|
);
|
|
|
|
assert.equal(
|
|
activity.full_huddle_name('alice@zulip.com,fred@zulip.com,jill@zulip.com'),
|
|
'Alice Smith, Fred Flintstone, Jill Hill'
|
|
);
|
|
}());
|
|
|
|
(function test_huddle_fraction_present() {
|
|
var huddle = 'alice@zulip.com,fred@zulip.com,jill@zulip.com,mark@zulip.com';
|
|
|
|
var presence_list = {
|
|
'alice@zulip.com': 'active',
|
|
'fred@zulip.com': 'idle', // counts as present
|
|
// jill not in list
|
|
'mark@zulip.com': 'offline' // does not count
|
|
};
|
|
|
|
assert.equal(
|
|
activity.huddle_fraction_present(huddle, presence_list),
|
|
'0.50'
|
|
);
|
|
}());
|
|
|