message_store.js: Increase coverage for add_message.

This commit is contained in:
Cory Lynch
2017-06-19 18:40:43 -04:00
committed by showell
parent 6c722843ef
commit 24b9108d09

View File

@@ -5,12 +5,30 @@ add_dependencies({
});
var noop = function () {};
var with_overrides = global.with_overrides;
var people = global.people;
set_global('alert_words', {
process_message: noop,
});
set_global('stream_data' , {
process_message_for_recent_topics: noop,
});
set_global('recent_senders', {
process_message_for_senders: noop,
});
set_global('page_params', {
realm_allow_message_editing: true,
is_admin: true,
});
set_global('blueslip', {
error: noop,
});
var me = {
email: 'me@example.com',
user_id: 101,
@@ -67,6 +85,7 @@ var message_store = require('js/message_store.js');
type: 'private',
display_recipient: [me, bob, cindy],
flags: ['has_alert_word'],
id: 2067,
};
message_store.add_message_metadata(message);
@@ -76,4 +95,81 @@ var message_store = require('js/message_store.js');
assert.equal(message.display_reply_to, 'Bob, Cindy');
assert.equal(message.alerted, true);
assert.equal(message.is_me_message, false);
var retrieved_message = message_store.get(2067);
assert.equal(retrieved_message, message);
// access cached previous message, and test match subject/content
message = {
id: 2067,
match_subject: "subject foo",
match_content: "bar content",
};
message = message_store.add_message_metadata(message);
assert.equal(message.reply_to, 'bob@example.com,cindy@example.com');
assert.equal(message.to_user_ids, '103,104');
assert.equal(message.display_reply_to, 'Bob, Cindy');
assert.equal(message.match_subject, 'subject foo');
assert.equal(message.match_content, 'bar content');
message = {
sender_email: 'me@example.com',
sender_id: me.user_id,
type: 'stream',
display_recipient: [me, cindy],
stream: 'Zoolippy',
topic: 'cool thing',
subject: 'the_subject',
id: 2068,
};
// test stream properties
with_overrides(function (override) {
override('compose.empty_topic_placeholder', function () {
return 'the_subject';
});
global.with_stub(function (stub) {
set_global('composebox_typeahead', {add_topic: stub.f});
message_store.add_message_metadata(message);
var typeahead_added = stub.get_args('stream', 'subject');
assert.deepEqual(typeahead_added.stream, [me, cindy]);
assert.equal(message.subject, typeahead_added.subject);
});
assert.equal(message.always_visible_topic_edit, true);
assert.equal(message.on_hover_topic_edit, false);
assert.deepEqual(message.stream, [me, cindy]);
assert.equal(message.reply_to, 'me@example.com');
assert.deepEqual(message.flags, []);
assert.equal(message.alerted, false);
override('compose.empty_topic_placeholder', function () {
return 'not_the_subject';
});
message = {
sender_id: me.user_id,
type: 'stream',
id: 2069,
display_recipient: [me],
sender_email: 'me@example.org',
};
message_store.add_message_metadata(message);
assert.equal(message.always_visible_topic_edit, false);
assert.equal(message.on_hover_topic_edit, true);
});
page_params.realm_allow_message_editing = false;
message = {
sender_id: me.user_id,
type: 'stream',
id: 2070,
display_recipient: [me],
sender_email: 'me@example.org',
};
message_store.add_message_metadata(message);
assert.equal(message.always_visible_topic_edit, false);
assert.equal(message.on_hover_topic_edit, false);
}());