echo: Convert waiting_for_ack from object to Map.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
This commit is contained in:
Anders Kaseorg
2020-02-11 21:02:56 -08:00
committed by Tim Abbott
parent c42aca3cfb
commit 0936381cfd
2 changed files with 13 additions and 13 deletions

View File

@@ -40,13 +40,13 @@ set_global('message_list', {});
set_global('current_msg_list', ''); set_global('current_msg_list', '');
run_test('process_from_server for un-echoed messages', () => { run_test('process_from_server for un-echoed messages', () => {
const waiting_for_ack = {}; const waiting_for_ack = new Map();
const server_messages = [ const server_messages = [
{ {
local_id: "100.1", local_id: "100.1",
}, },
]; ];
echo._patch_waiting_for_awk(waiting_for_ack); echo._patch_waiting_for_ack(waiting_for_ack);
const non_echo_messages = echo.process_from_server(server_messages); const non_echo_messages = echo.process_from_server(server_messages);
assert.deepEqual(non_echo_messages, server_messages); assert.deepEqual(non_echo_messages, server_messages);
}); });
@@ -56,15 +56,15 @@ run_test('process_from_server for differently rendered messages', () => {
// in local echo. // in local echo.
const old_value = 'old_value'; const old_value = 'old_value';
const new_value = 'new_value'; const new_value = 'new_value';
const waiting_for_ack = { const waiting_for_ack = new Map([
100.1: { ["100.1", {
content: "<p>A client rendered message</p>", content: "<p>A client rendered message</p>",
timestamp: old_value, timestamp: old_value,
is_me_message: old_value, is_me_message: old_value,
submessages: old_value, submessages: old_value,
topic_links: old_value, topic_links: old_value,
}, }],
}; ]);
const server_messages = [ const server_messages = [
{ {
local_id: "100.1", local_id: "100.1",
@@ -75,7 +75,7 @@ run_test('process_from_server for differently rendered messages', () => {
topic_links: new_value, topic_links: new_value,
}, },
]; ];
echo._patch_waiting_for_awk(waiting_for_ack); echo._patch_waiting_for_ack(waiting_for_ack);
messages_to_rerender = []; messages_to_rerender = [];
disparities = []; disparities = [];
const non_echo_messages = echo.process_from_server(server_messages); const non_echo_messages = echo.process_from_server(server_messages);

View File

@@ -1,7 +1,7 @@
// Docs: https://zulip.readthedocs.io/en/latest/subsystems/sending-messages.html // Docs: https://zulip.readthedocs.io/en/latest/subsystems/sending-messages.html
const waiting_for_id = new Map(); const waiting_for_id = new Map();
let waiting_for_ack = {}; let waiting_for_ack = new Map();
function resend_message(message, row) { function resend_message(message, row) {
message.content = message.raw_content; message.content = message.raw_content;
@@ -128,7 +128,7 @@ exports.insert_local_message = function (message_request, local_id_float) {
markdown.add_topic_links(message); markdown.add_topic_links(message);
waiting_for_id.set(message.local_id, message); waiting_for_id.set(message.local_id, message);
waiting_for_ack[message.local_id] = message; waiting_for_ack.set(message.local_id, message);
message.display_recipient = echo.build_display_recipient(message); message.display_recipient = echo.build_display_recipient(message);
local_message.insert_message(message); local_message.insert_message(message);
@@ -260,7 +260,7 @@ exports.process_from_server = function process_from_server(messages) {
for (const message of messages) { for (const message of messages) {
// In case we get the sent message before we get the send ACK, reify here // In case we get the sent message before we get the send ACK, reify here
const client_message = waiting_for_ack[message.local_id]; const client_message = waiting_for_ack.get(message.local_id);
if (client_message === undefined) { if (client_message === undefined) {
// For messages that weren't locally echoed, we go through // For messages that weren't locally echoed, we go through
// the "main" codepath that doesn't have to id reconciliation. // the "main" codepath that doesn't have to id reconciliation.
@@ -296,7 +296,7 @@ exports.process_from_server = function process_from_server(messages) {
client_message.submessages = message.submessages; client_message.submessages = message.submessages;
msgs_to_rerender.push(client_message); msgs_to_rerender.push(client_message);
delete waiting_for_ack[client_message.id]; waiting_for_ack.delete(client_message.id);
} }
if (msgs_to_rerender.length > 0) { if (msgs_to_rerender.length > 0) {
@@ -313,7 +313,7 @@ exports.process_from_server = function process_from_server(messages) {
return non_echo_messages; return non_echo_messages;
}; };
exports._patch_waiting_for_awk = function _patch_waiting_for_awk(data) { exports._patch_waiting_for_ack = function _patch_waiting_for_ack(data) {
// Only for testing // Only for testing
waiting_for_ack = data; waiting_for_ack = data;
}; };
@@ -340,7 +340,7 @@ exports.initialize = function () {
const message_id = rows.id(row); const message_id = rows.id(row);
// Message should be waiting for ack and only have a local id, // Message should be waiting for ack and only have a local id,
// otherwise send would not have failed // otherwise send would not have failed
const message = waiting_for_ack[message_id]; const message = waiting_for_ack.get(message_id);
if (message === undefined) { if (message === undefined) {
blueslip.warn("Got resend or retry on failure request but did not find message in ack list " + message_id); blueslip.warn("Got resend or retry on failure request but did not find message in ack list " + message_id);
return; return;