mirror of https://github.com/zulip/zulip.git
node tests: Extract topic_data.js.
This mostly moves code, and it also removes some unnecessary coupling to stream_data.js. The topic_data code purely works in the stream_id space, so there's no need to set up actual stream data for it.
This commit is contained in:
parent
a9e296db74
commit
466757c3f1
|
@ -242,71 +242,6 @@ var people = global.people;
|
||||||
assert(!ok);
|
assert(!ok);
|
||||||
}());
|
}());
|
||||||
|
|
||||||
(function test_process_message() {
|
|
||||||
var stream_id = 55;
|
|
||||||
|
|
||||||
var rome = {
|
|
||||||
name: 'Rome',
|
|
||||||
stream_id: stream_id,
|
|
||||||
};
|
|
||||||
|
|
||||||
stream_data.add_sub('Rome', rome);
|
|
||||||
|
|
||||||
topic_data.add_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
message_id: 101,
|
|
||||||
topic_name: 'toPic1',
|
|
||||||
});
|
|
||||||
|
|
||||||
var history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['toPic1']);
|
|
||||||
|
|
||||||
topic_data.add_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
message_id: 102,
|
|
||||||
topic_name: 'Topic1',
|
|
||||||
});
|
|
||||||
history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['Topic1']);
|
|
||||||
|
|
||||||
topic_data.add_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
message_id: 103,
|
|
||||||
topic_name: 'topic2',
|
|
||||||
});
|
|
||||||
history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['topic2', 'Topic1']);
|
|
||||||
|
|
||||||
// Removing first topic1 message has no effect.
|
|
||||||
topic_data.remove_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
topic_name: 'toPic1',
|
|
||||||
});
|
|
||||||
history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['topic2', 'Topic1']);
|
|
||||||
|
|
||||||
// Removing second topic1 message removes the topic.
|
|
||||||
topic_data.remove_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
topic_name: 'Topic1',
|
|
||||||
});
|
|
||||||
history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['topic2']);
|
|
||||||
|
|
||||||
// Test that duplicate remove does not crash us.
|
|
||||||
topic_data.remove_message({
|
|
||||||
stream_id: stream_id,
|
|
||||||
topic_name: 'Topic1',
|
|
||||||
});
|
|
||||||
history = topic_data.get_recent_names(rome.stream_id);
|
|
||||||
assert.deepEqual(history, ['topic2']);
|
|
||||||
|
|
||||||
// get to 100% coverage for defensive code
|
|
||||||
topic_data.remove_message({
|
|
||||||
stream_id: 9999999,
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
(function test_is_active() {
|
(function test_is_active() {
|
||||||
stream_data.clear_subscriptions();
|
stream_data.clear_subscriptions();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
var topic_data = require('js/topic_data.js');
|
||||||
|
|
||||||
|
(function test_basics() {
|
||||||
|
var stream_id = 55;
|
||||||
|
|
||||||
|
topic_data.add_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
message_id: 101,
|
||||||
|
topic_name: 'toPic1',
|
||||||
|
});
|
||||||
|
|
||||||
|
var history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['toPic1']);
|
||||||
|
|
||||||
|
topic_data.add_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
message_id: 102,
|
||||||
|
topic_name: 'Topic1',
|
||||||
|
});
|
||||||
|
history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['Topic1']);
|
||||||
|
|
||||||
|
topic_data.add_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
message_id: 103,
|
||||||
|
topic_name: 'topic2',
|
||||||
|
});
|
||||||
|
history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['topic2', 'Topic1']);
|
||||||
|
|
||||||
|
// Removing first topic1 message has no effect.
|
||||||
|
topic_data.remove_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
topic_name: 'toPic1',
|
||||||
|
});
|
||||||
|
history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['topic2', 'Topic1']);
|
||||||
|
|
||||||
|
// Removing second topic1 message removes the topic.
|
||||||
|
topic_data.remove_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
topic_name: 'Topic1',
|
||||||
|
});
|
||||||
|
history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['topic2']);
|
||||||
|
|
||||||
|
// Test that duplicate remove does not crash us.
|
||||||
|
topic_data.remove_message({
|
||||||
|
stream_id: stream_id,
|
||||||
|
topic_name: 'Topic1',
|
||||||
|
});
|
||||||
|
history = topic_data.get_recent_names(stream_id);
|
||||||
|
assert.deepEqual(history, ['topic2']);
|
||||||
|
|
||||||
|
// get to 100% coverage for defensive code
|
||||||
|
topic_data.remove_message({
|
||||||
|
stream_id: 9999999,
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
Loading…
Reference in New Issue