mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
This commit was originally automatically generated using `tools/lint --only=eslint --fix`. It was then modified by tabbott to contain only changes to a set of files that are unlikely to result in significant merge conflicts with any open pull request, excluding about 20 files. His plan is to merge the remaining changes with more precise care, potentially involving merging parts of conflicting pull requests before running the `eslint --fix` operation. Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
116 lines
3.1 KiB
JavaScript
116 lines
3.1 KiB
JavaScript
zrequire('util');
|
|
const rs = zrequire('recent_senders');
|
|
|
|
run_test('process_message_for_senders', () => {
|
|
const stream1 = 1;
|
|
const stream2 = 2;
|
|
const stream3 = 3;
|
|
|
|
const topic1 = "topic-1";
|
|
const topic2 = "topic-2";
|
|
const topic3 = "topic-3";
|
|
|
|
const sender1 = 1;
|
|
const sender2 = 2;
|
|
const sender3 = 3;
|
|
|
|
// New stream
|
|
const message1 = {
|
|
stream_id: stream1,
|
|
id: _.uniqueId(),
|
|
topic: topic1,
|
|
sender_id: sender1,
|
|
};
|
|
const message2 = {
|
|
stream_id: stream2,
|
|
id: _.uniqueId(),
|
|
topic: topic1,
|
|
sender_id: sender2,
|
|
};
|
|
rs.process_message_for_senders(message1);
|
|
rs.process_message_for_senders(message2);
|
|
|
|
// Users have posted in only one of the streams
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream1, topic1) < 0,
|
|
true);
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream2, topic1) > 0,
|
|
true);
|
|
|
|
// Users haven't posted in this stream, return zero
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream3, undefined) === 0,
|
|
true);
|
|
|
|
// New topic
|
|
const message3 = {
|
|
stream_id: stream1,
|
|
id: _.uniqueId(),
|
|
topic: topic2,
|
|
sender_id: sender3,
|
|
};
|
|
rs.process_message_for_senders(message3);
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender3}, {user_id: sender2}, stream1, topic2) < 0,
|
|
true);
|
|
|
|
// New sender
|
|
const message4 = {
|
|
stream_id: stream1,
|
|
id: _.uniqueId(),
|
|
topic: topic1,
|
|
sender_id: sender2,
|
|
};
|
|
rs.process_message_for_senders(message4);
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream1, topic1) > 0,
|
|
true);
|
|
|
|
// More recent message
|
|
const message5 = {
|
|
stream_id: stream1,
|
|
id: _.uniqueId(),
|
|
topic: topic1,
|
|
sender_id: sender1,
|
|
};
|
|
rs.process_message_for_senders(message5);
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream1, topic1) < 0,
|
|
true);
|
|
|
|
// Same stream, but different topics
|
|
const message6 = {
|
|
stream_id: stream3,
|
|
id: _.uniqueId(),
|
|
topic: topic1,
|
|
sender_id: sender1,
|
|
};
|
|
const message7 = {
|
|
stream_id: stream3,
|
|
id: _.uniqueId(),
|
|
topic: topic2,
|
|
sender_id: sender2,
|
|
};
|
|
const message8 = {
|
|
stream_id: stream3,
|
|
id: _.uniqueId(),
|
|
topic: topic3,
|
|
sender_id: sender3,
|
|
};
|
|
|
|
rs.process_message_for_senders(message6);
|
|
rs.process_message_for_senders(message7);
|
|
rs.process_message_for_senders(message8);
|
|
|
|
// topic3 has a message in it, but sender1 nor sender2 have participated, so sort by stream
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender1}, {user_id: sender2}, stream3, topic3) > 0,
|
|
true);
|
|
assert.equal(
|
|
rs.compare_by_recency({user_id: sender2}, {user_id: sender1}, stream3, topic3) < 0,
|
|
true);
|
|
|
|
assert.equal(rs.compare_by_recency({}, {}, _.uniqueId(), ''), 0);
|
|
});
|