local echo: Bypass message.flags array.

We no longer set message.flags in the local echo path.

In the markdown parsing step, we just set message.mentioned
directly.

And then we change `insert_new_messages` to no longer
convert flags to booleans, and move that code to only
happen for incoming server message events.
This commit is contained in:
Steve Howell
2017-12-16 17:25:31 -05:00
committed by showell
parent 4d8d17d134
commit 0a3d769911
8 changed files with 81 additions and 32 deletions

View File

@@ -183,6 +183,38 @@ global.people.initialize_current_user(me.user_id);
assert.equal(num_partner, 0);
}());
(function test_update_booleans() {
var message = {};
// First, test fields that we do actually want to update.
message.mentioned = false;
message.mentioned_me_directly = false;
message.alerted = false;
var flags = ['mentioned', 'has_alert_word', 'read'];
message_store.update_booleans(message, flags);
assert.equal(message.mentioned, true);
assert.equal(message.mentioned_me_directly, true);
assert.equal(message.alerted, true);
flags = ['read'];
message_store.update_booleans(message, flags);
assert.equal(message.mentioned, false);
assert.equal(message.mentioned_me_directly, false);
assert.equal(message.alerted, false);
// Make sure we don't muck with unread.
message.unread = false;
flags = [''];
message_store.update_booleans(message, flags);
assert.equal(message.unread, false);
message.unread = true;
flags = ['read'];
message_store.update_booleans(message, flags);
assert.equal(message.unread, true);
}());
(function test_message_id_change() {
var message = {
sender_email: 'me@example.com',