Files
zulip/frontend_tests/node_tests/pm_conversations.js
Tim Abbott 263ac0eb45 pm_conversations: Initialize using server data.
This simple change switches us to take advantage of the
server-maintained data for the pm_conversations system we implemented
originally for mobile use.

This should make it a lot more convenient to find historical private
message conversations, since one can effectively scroll infinitely
into the history.

We'll need to do some profiling of the backend after this is deployed
in production; it's possible we'll need to add some database indexes,
denormalization, or other optimizations to avoid making loading the
Zulip app significantly slower.

Fixes #12502.
2019-11-21 17:01:41 -08:00

57 lines
1.5 KiB
JavaScript

const pmc = zrequire('pm_conversations');
run_test('partners', () => {
const user1_id = 1;
const user2_id = 2;
const user3_id = 3;
pmc.set_partner(user1_id);
pmc.set_partner(user3_id);
assert.equal(pmc.is_partner(user1_id), true);
assert.equal(pmc.is_partner(user2_id), false);
assert.equal(pmc.is_partner(user3_id), true);
});
zrequire("people");
run_test('insert_recent_private_message', () => {
set_global('page_params', {
recent_private_conversations: [
{user_ids: [1, 2],
max_message_id: 150,
},
{user_ids: [1],
max_message_id: 111,
},
{user_ids: [],
max_message_id: 7,
},
],
});
people.initialize_current_user(15);
pmc.recent.initialize();
assert.deepEqual(pmc.recent.get(), [
{user_ids_string: '1,2', max_message_id: 150},
{user_ids_string: '1', max_message_id: 111},
{user_ids_string: '15', max_message_id: 7},
]);
pmc.recent.insert('1', 1001);
pmc.recent.insert('2', 2001);
pmc.recent.insert('1', 3001);
// try to backdate user1's latest message
pmc.recent.insert('1', 555);
assert.deepEqual(pmc.recent.get(), [
{user_ids_string: '1', max_message_id: 3001},
{user_ids_string: '2', max_message_id: 2001},
{user_ids_string: '1,2', max_message_id: 150},
{user_ids_string: '15', max_message_id: 7},
]);
assert.deepEqual(pmc.recent.get_strings(), ['1', '2', '1,2', '15']);
});