narrow-filter: Update `Filter.describe_is_operator` for "resolved".

Updates `Filter.describe_is_operator` to use switch/case instead
of if/else and adds case for "is:resolved" narrow so that it is
not shown as invalid when used with other search narrow filters.
This commit is contained in:
Lauryn Menard 2023-04-07 12:14:25 +02:00 committed by Tim Abbott
parent 982a37aece
commit b821c90f44
2 changed files with 17 additions and 7 deletions

View File

@ -999,14 +999,20 @@ export class Filter {
static describe_is_operator(operator) {
const verb = operator.negated ? "exclude " : "";
const operand = operator.operand;
const operand_list = ["starred", "alerted", "unread"];
if (operand_list.includes(operand)) {
return verb + operand + " messages";
} else if (operand === "mentioned") {
return verb + "@-mentions";
} else if (operand === "private") {
return verb + "direct messages";
switch (operand) {
case "starred":
case "alerted":
case "unread":
return verb + operand + " messages";
case "mentioned":
return verb + "@-mentions";
case "private":
return verb + "direct messages";
case "resolved":
return verb + "topics marked as resolved";
}
return "invalid " + operand + " operand for is operator";
}

View File

@ -1157,6 +1157,10 @@ test("describe", () => {
string = "alerted messages";
assert.equal(Filter.describe(narrow), string);
narrow = [{operator: "is", operand: "resolved"}];
string = "topics marked as resolved";
assert.equal(Filter.describe(narrow), string);
narrow = [{operator: "is", operand: "something_we_do_not_support"}];
string = "invalid something_we_do_not_support operand for is operator";
assert.equal(Filter.describe(narrow), string);