diff --git a/web/src/filter.ts b/web/src/filter.ts index 77fbf9308f..3c7d62746d 100644 --- a/web/src/filter.ts +++ b/web/src/filter.ts @@ -1433,19 +1433,18 @@ export class Filter { if (term_types.length === 1 && _.isEqual(term_types, ["sender"])) { const email = this.operands("sender")[0]!; const user = people.get_by_email(email); - let sender = email; - if (user) { - if (people.is_my_user_id(user.user_id)) { - return $t({defaultMessage: "Messages sent by you"}); - } - - if (people.should_add_guest_user_indicator(user.user_id)) { - sender = $t({defaultMessage: "{name} (guest)"}, {name: user.full_name}); - } else { - sender = user.full_name; - } + if (user === undefined) { + return $t({defaultMessage: "Messages sent by unknown user"}); + } + if (people.is_my_user_id(user.user_id)) { + return $t({defaultMessage: "Messages sent by you"}); + } + let sender: string; + if (people.should_add_guest_user_indicator(user.user_id)) { + sender = $t({defaultMessage: "{name} (guest)"}, {name: user.full_name}); + } else { + sender = user.full_name; } - return $t( {defaultMessage: "Messages sent by {sender}"}, { diff --git a/web/tests/filter.test.cjs b/web/tests/filter.test.cjs index 3d435075da..c9745e95a0 100644 --- a/web/tests/filter.test.cjs +++ b/web/tests/filter.test.cjs @@ -2337,6 +2337,7 @@ test("navbar_helpers", ({override}) => { const sender = [{operator: "sender", operand: joe.email}]; const guest_sender = [{operator: "sender", operand: alice.email}]; + const invalid_sender = [{operator: "sender", operand: "sally@doesnotexist.co"}]; const in_home = [{operator: "in", operand: "home"}]; const in_all = [{operator: "in", operand: "all"}]; const is_starred = [{operator: "is", operand: "starred"}]; @@ -2434,6 +2435,13 @@ test("navbar_helpers", ({override}) => { title: "translated: Messages sent by translated: alice (guest)", redirect_url_with_search: "/#narrow/sender/" + alice.user_id + "-alice", }, + { + terms: invalid_sender, + is_common_narrow: true, + icon: undefined, + title: "translated: Messages sent by unknown user", + redirect_url_with_search: "/#narrow/sender/undefined", + }, { terms: is_starred, is_common_narrow: true,