search_suggestion: Change suggestion string for has: operator.

Earlier in search suggestion, has: operator returned two different
suggestion string which were `messages with one or more links` and
`messages that contain links`.

This commit changes this to a consistent suggestion string.

Fixes: zulip#30908
This commit is contained in:
Pratik Chanda 2024-07-16 05:15:26 +05:30 committed by Tim Abbott
parent 52d8813214
commit f7c3f1414d
5 changed files with 17 additions and 17 deletions

View File

@ -665,7 +665,7 @@ export class Filter {
// Note: We hack around using this in "describe" below.
case "has":
return verb + "messages with one or more";
return verb + "messages with";
case "id":
return verb + "message ID";

View File

@ -720,25 +720,25 @@ function get_has_filter_suggestions(last: NarrowTerm, terms: NarrowTerm[]): Sugg
const suggestions: SuggestionAndIncompatiblePatterns[] = [
{
search_string: "has:link",
description_html: "messages that contain links",
description_html: "messages with links",
is_people: false,
incompatible_patterns: [{operator: "has", operand: "link"}],
},
{
search_string: "has:image",
description_html: "messages that contain images",
description_html: "messages with images",
is_people: false,
incompatible_patterns: [{operator: "has", operand: "image"}],
},
{
search_string: "has:attachment",
description_html: "messages that contain attachments",
description_html: "messages with attachments",
is_people: false,
incompatible_patterns: [{operator: "has", operand: "attachment"}],
},
{
search_string: "has:reaction",
description_html: "messages that contain reactions",
description_html: "messages with reactions",
is_people: false,
incompatible_patterns: [{operator: "has", operand: "reaction"}],
},

View File

@ -12,7 +12,7 @@
{{~!-- squash whitespace --~}}
{{else if (eq this.type "prefix_for_operator")}}
{{~!-- squash whitespace --~}}
{{this.prefix_for_operator}} {{this.operand}}
{{this.prefix_for_operator}} {{this.operand}}{{#if (or (eq this.operand "link") (eq this.operand "image") (eq this.operand "attachment") (eq this.operand "reaction"))}}s{{/if}}
{{~!-- squash whitespace --~}}
{{else if (eq this.type "user_pill")}}
{{~!-- squash whitespace --~}}

View File

@ -1500,7 +1500,7 @@ test("describe", ({mock_template}) => {
{operator: "channel", operand: "devel"},
{operator: "has", operand: "image", negated: true},
];
string = "channel devel, exclude messages with one or more image";
string = "channel devel, exclude messages with images";
assert.equal(Filter.search_description_as_html(narrow), string);
narrow = [
@ -1514,7 +1514,7 @@ test("describe", ({mock_template}) => {
{operator: "has", operand: "image", negated: true},
{operator: "channel", operand: "devel"},
];
string = "exclude messages with one or more image, channel devel";
string = "exclude messages with images, channel devel";
assert.equal(Filter.search_description_as_html(narrow), string);
narrow = [];

View File

@ -381,9 +381,9 @@ test("empty_query_suggestions", () => {
assert.equal(describe("is:resolved"), "Topics marked as resolved");
assert.equal(describe("is:followed"), "Followed topics");
assert.equal(describe("sender:myself@zulip.com"), "Sent by me");
assert.equal(describe("has:link"), "Messages that contain links");
assert.equal(describe("has:image"), "Messages that contain images");
assert.equal(describe("has:attachment"), "Messages that contain attachments");
assert.equal(describe("has:link"), "Messages with links");
assert.equal(describe("has:image"), "Messages with images");
assert.equal(describe("has:attachment"), "Messages with attachments");
});
test("has_suggestions", ({override, mock_template}) => {
@ -404,17 +404,17 @@ test("has_suggestions", ({override, mock_template}) => {
return suggestions.lookup_table.get(q).description_html;
}
assert.equal(describe("has:link"), "Messages that contain links");
assert.equal(describe("has:image"), "Messages that contain images");
assert.equal(describe("has:attachment"), "Messages that contain attachments");
assert.equal(describe("has:link"), "Messages with links");
assert.equal(describe("has:image"), "Messages with images");
assert.equal(describe("has:attachment"), "Messages with attachments");
query = "-h";
suggestions = get_suggestions(query);
expected = ["-h", "-has:link", "-has:image", "-has:attachment", "-has:reaction"];
assert.deepEqual(suggestions.strings, expected);
assert.equal(describe("-has:link"), "Exclude messages that contain links");
assert.equal(describe("-has:image"), "Exclude messages that contain images");
assert.equal(describe("-has:attachment"), "Exclude messages that contain attachments");
assert.equal(describe("-has:link"), "Exclude messages with links");
assert.equal(describe("-has:image"), "Exclude messages with images");
assert.equal(describe("-has:attachment"), "Exclude messages with attachments");
// operand suggestions follow.