node tests. Use clean data for unread tests.

This commit is contained in:
Steve Howell
2021-03-09 14:18:57 +00:00
committed by Steve Howell
parent 164db57be1
commit 1064690999

View File

@@ -11,7 +11,9 @@ let page_params = set_global("page_params", {
realm_push_notifications_enabled: false,
});
const message_store = mock_module("message_store");
const message_store = mock_module("message_store", {
get() {},
});
const muting = zrequire("muting");
set_global("current_msg_list", {});
@@ -64,19 +66,27 @@ function test_notifiable_count(home_unread_messages, expected_notifiable_count)
assert.deepEqual(notifiable_counts, 0);
}
run_test("empty_counts_while_narrowed", () => {
function test(label, f) {
run_test(label, (override) => {
unread.declare_bankruptcy();
muting.set_muted_topics([]);
f(override);
});
}
test("empty_counts_while_narrowed", () => {
const counts = unread.get_counts();
assert_zero_counts(counts);
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("empty_counts_while_home", () => {
test("empty_counts_while_home", () => {
const counts = unread.get_counts();
assert_zero_counts(counts);
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("changing_topics", () => {
test("changing_topics", (override) => {
// Summary: change the topic of a message from 'lunch'
// to 'dinner' using update_unread_topics().
let count = unread.num_unread_for_topic(social.stream_id, "lunch");
@@ -180,7 +190,7 @@ run_test("changing_topics", () => {
message_dict.set(other_message.id, other_message);
message_dict.set(sticky_message.id, sticky_message);
message_store.get = (msg_id) => message_dict.get(msg_id);
override(message_store, "get", (msg_id) => message_dict.get(msg_id));
unread.process_loaded_messages([sticky_message]);
count = unread.num_unread_for_topic(stream_id, "sticky");
@@ -213,9 +223,7 @@ run_test("changing_topics", () => {
unread.update_unread_topics(sticky_message, {});
});
run_test("muting", () => {
unread.declare_bankruptcy();
test("muting", () => {
const stream_id = social.stream_id;
const unknown_stream_id = 555;
@@ -249,11 +257,9 @@ run_test("muting", () => {
assert.equal(unread.num_unread_for_stream(unknown_stream_id), 0);
});
run_test("num_unread_for_topic", (override) => {
test("num_unread_for_topic", (override) => {
// Test the num_unread_for_topic() function using many
// messages.
unread.declare_bankruptcy();
const stream_id = 301;
override(stream_data, "get_sub_by_id", (arg) => {
@@ -324,7 +330,7 @@ run_test("num_unread_for_topic", (override) => {
assert.deepEqual(msg_ids, []);
});
run_test("home_messages", (override) => {
test("home_messages", (override) => {
override(stream_data, "is_subscribed", () => true);
override(stream_data, "is_muted", () => false);
@@ -369,7 +375,7 @@ run_test("home_messages", (override) => {
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("phantom_messages", (override) => {
test("phantom_messages", () => {
const message = {
id: 999,
type: "stream",
@@ -377,15 +383,13 @@ run_test("phantom_messages", (override) => {
topic: "phantom",
};
override(stream_data, "get_sub_by_id", () => {});
unread.mark_as_read(message.id);
const counts = unread.get_counts();
assert.equal(counts.home_unread_messages, 0);
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("private_messages", () => {
test("private_messages", () => {
let counts = unread.get_counts();
assert.equal(counts.private_message_count, 0);
@@ -416,7 +420,7 @@ run_test("private_messages", () => {
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("private_messages", () => {
test("private_messages", () => {
const alice = {
email: "alice@example.com",
user_id: 101,
@@ -470,7 +474,7 @@ run_test("private_messages", () => {
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("mentions", () => {
test("mentions", () => {
let counts = unread.get_counts();
assert.equal(counts.mentioned_message_count, 0);
assert.deepEqual(unread.get_msg_ids_for_mentions(), []);
@@ -548,7 +552,7 @@ run_test("mentions", () => {
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("mention updates", () => {
test("mention updates", () => {
const message = {
id: 17,
unread: false,
@@ -579,13 +583,13 @@ run_test("mention updates", () => {
test_counted(true);
});
run_test("starring", () => {
test("starring", () => {
// We don't need any setup here, because we just hard code
// this to [] in the code.
assert.deepEqual(unread.get_msg_ids_for_starred(), []);
});
run_test("declare_bankruptcy", () => {
test("declare_bankruptcy", () => {
const message = {
id: 16,
type: "whatever",
@@ -603,14 +607,14 @@ run_test("declare_bankruptcy", () => {
test_notifiable_count(counts.home_unread_messages, 0);
});
run_test("message_unread", () => {
test("message_unread", () => {
// Test some code that might be overly defensive, for line coverage sake.
assert(!unread.message_unread(undefined));
assert(unread.message_unread({unread: true}));
assert(!unread.message_unread({unread: false}));
});
run_test("server_counts", () => {
test("server_counts", () => {
// note that user_id 30 is "me"
page_params.unread_msgs = {
@@ -636,7 +640,6 @@ run_test("server_counts", () => {
mentions: [31, 34, 40, 41],
};
unread.declare_bankruptcy();
unread.initialize();
assert.equal(unread.num_unread_for_person("101"), 6);
@@ -659,9 +662,7 @@ run_test("server_counts", () => {
assert.equal(unread.num_unread_for_person("4,6,101"), 1);
});
run_test("empty_cases", () => {
unread.declare_bankruptcy();
test("empty_cases", () => {
const stream_id = 999;
let msg_ids = unread.get_msg_ids_for_topic(stream_id, "LuNcH");
assert.deepEqual(msg_ids, []);
@@ -677,9 +678,7 @@ run_test("empty_cases", () => {
assert.deepEqual(missing_topics, []);
});
run_test("errors", () => {
unread.declare_bankruptcy();
test("errors", () => {
// Test unknown message leads to zero count
const message = {
id: 9,