stream_data: Avoid undefined return from is_user_subscribed.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2023-12-21 16:37:24 -08:00
committed by Tim Abbott
parent 5604ebedf0
commit a36ef0b593
3 changed files with 8 additions and 8 deletions

View File

@@ -20,7 +20,7 @@ export function set_focused_recipient(recipient?: Recipient): void {
focused_recipient = recipient; focused_recipient = recipient;
} }
export function would_receive_message(user_id: number): boolean | undefined { export function would_receive_message(user_id: number): boolean {
assert(focused_recipient !== undefined); assert(focused_recipient !== undefined);
if (focused_recipient.type === "stream") { if (focused_recipient.type === "stream") {
const sub = sub_store.get(focused_recipient.stream_id); const sub = sub_store.get(focused_recipient.stream_id);

View File

@@ -697,19 +697,19 @@ export function get_name(stream_name: string): string {
return sub.name; return sub.name;
} }
export function is_user_subscribed(stream_id: number, user_id: number): boolean | undefined { export function is_user_subscribed(stream_id: number, user_id: number): boolean {
const sub = sub_store.get(stream_id); const sub = sub_store.get(stream_id);
if (sub === undefined || !can_view_subscribers(sub)) { if (sub === undefined || !can_view_subscribers(sub)) {
// If we don't know about the stream, or we ourselves cannot access subscriber list, // If we don't know about the stream, or we ourselves cannot access subscriber list,
// so we return undefined (treated as falsy if not explicitly handled). // so we return false.
blueslip.warn( blueslip.warn(
"We got a is_user_subscribed call for a non-existent or inaccessible stream.", "We got a is_user_subscribed call for a non-existent or inaccessible stream.",
); );
return undefined; return false;
} }
if (user_id === undefined) { if (user_id === undefined) {
blueslip.warn("Undefined user_id passed to function is_user_subscribed"); blueslip.warn("Undefined user_id passed to function is_user_subscribed");
return undefined; return false;
} }
return peer_data.is_user_subscribed(stream_id, user_id); return peer_data.is_user_subscribed(stream_id, user_id);

View File

@@ -152,7 +152,7 @@ test("subscribers", () => {
// verify that checking subscription with undefined user id // verify that checking subscription with undefined user id
blueslip.expect("warn", "Undefined user_id passed to function is_user_subscribed"); blueslip.expect("warn", "Undefined user_id passed to function is_user_subscribed");
assert.equal(stream_data.is_user_subscribed(stream_id, undefined), undefined); assert.ok(!stream_data.is_user_subscribed(stream_id, undefined));
blueslip.reset(); blueslip.reset();
// Verify noop for bad stream when removing subscriber // Verify noop for bad stream when removing subscriber
@@ -193,9 +193,9 @@ test("subscribers", () => {
2, 2,
); );
sub.invite_only = true; sub.invite_only = true;
assert.equal(stream_data.is_user_subscribed(stream_id, brutus.user_id), undefined); assert.ok(!stream_data.is_user_subscribed(stream_id, brutus.user_id));
peer_data.remove_subscriber(stream_id, brutus.user_id); peer_data.remove_subscriber(stream_id, brutus.user_id);
assert.equal(stream_data.is_user_subscribed(stream_id, brutus.user_id), undefined); assert.ok(!stream_data.is_user_subscribed(stream_id, brutus.user_id));
blueslip.reset(); blueslip.reset();
// Verify that we don't crash for a bad stream. // Verify that we don't crash for a bad stream.