From afbc6f2510702a74e7a7294ce0dea34e852d9762 Mon Sep 17 00:00:00 2001 From: Aman Agrawal Date: Tue, 25 Mar 2025 19:13:30 +0530 Subject: [PATCH] message_list: Fix `just_unsubscribed` for empty views. This fixes a bug where wrong bookend is shown in empty views in the next commit. --- web/src/message_list.ts | 2 +- web/tests/message_list.test.cjs | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/web/src/message_list.ts b/web/src/message_list.ts index 8ccf74b4fd..83dc74941e 100644 --- a/web/src/message_list.ts +++ b/web/src/message_list.ts @@ -469,7 +469,7 @@ export class MessageList { const is_web_public = sub?.is_web_public; if (sub === undefined || sub.is_archived) { deactivated = true; - } else if (!subscribed && !this.last_message_historical) { + } else if (!subscribed && !this.last_message_historical && !this.empty()) { just_unsubscribed = true; } diff --git a/web/tests/message_list.test.cjs b/web/tests/message_list.test.cjs index 669e00200a..c492c98b7d 100644 --- a/web/tests/message_list.test.cjs +++ b/web/tests/message_list.test.cjs @@ -387,6 +387,29 @@ run_test("bookend", ({override}) => { list.last_message_historical = false; is_subscribed = false; + { + const stub = make_stub(); + list.view.render_trailing_bookend = stub.f; + list.update_trailing_bookend(); + assert.equal(stub.num_calls, 1); + const bookend = stub.get_args( + "stream_id", + "stream_name", + "subscribed", + "deactivated", + "just_unsubscribed", + ); + assert.equal(bookend.stream_id, 5); + assert.equal(bookend.stream_name, "IceCream"); + assert.equal(bookend.subscribed, false); + assert.equal(bookend.deactivated, false); + assert.equal(bookend.just_unsubscribed, false); + } + + list.last_message_historical = false; + is_subscribed = false; + list.empty = () => false; + { const stub = make_stub(); list.view.render_trailing_bookend = stub.f;