FIX: Allow any other tag to be a synonym (#13290)

Tag-chooser component expects an array of blocked tags, but was passed
a string instead. That made tag-chooser to not allow any tags that were
a substring of the current one.
This commit is contained in:
Bianca Nenciu 2021-06-04 21:51:53 +03:00 committed by GitHub
parent c4e801852f
commit 46cd355046
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 5 deletions

View File

@ -59,7 +59,7 @@
{{tag-chooser
id="add-synonyms"
tags=newSynonyms
blockedTags=tagInfo.name
blockedTags=(array tagInfo.name)
everyTag=true
excludeSynonyms=true
excludeHasSynonyms=true

View File

@ -254,13 +254,16 @@ acceptance("Tag info", function (needs) {
tags_listed_by_group: true,
});
needs.pretender((server, helper) => {
server.get("/tag/planters/notifications", () => {
server.get("/tag/:tag_name/notifications", (request) => {
return helper.response({
tag_notification: { id: "planters", notification_level: 1 },
tag_notification: {
id: request.params.tag_name,
notification_level: 1,
},
});
});
server.get("/tag/planters/l/latest.json", () => {
server.get("/tag/:tag_name/l/latest.json", (request) => {
return helper.response({
users: [],
primary_groups: [],
@ -273,7 +276,7 @@ acceptance("Tag info", function (needs) {
tags: [
{
id: 1,
name: "planters",
name: request.params.tag_name,
topic_count: 1,
},
],
@ -345,9 +348,35 @@ acceptance("Tag info", function (needs) {
});
});
server.get("/tag/happy-monkey/info", () => {
return helper.response({
__rest_serializer: "1",
tag_info: {
id: 13,
name: "happy-monkey",
topic_count: 1,
staff: false,
synonyms: [],
tag_group_names: [],
category_ids: [],
},
categories: [],
});
});
server.delete("/tag/planters/synonyms/containers", () =>
helper.response({ success: true })
);
server.get("/tags/filter/search", () =>
helper.response({
results: [
{ id: "monkey", text: "monkey", count: 1 },
{ id: "not-monkey", text: "not-monkey", count: 1 },
{ id: "happy-monkey", text: "happy-monkey", count: 1 },
],
})
);
});
test("tag info can show synonyms", async function (assert) {
@ -375,6 +404,25 @@ acceptance("Tag info", function (needs) {
assert.ok(!exists("#delete-tag"), "can't delete tag");
});
test("tag info hides only current tag in synonyms dropdown", async function (assert) {
updateCurrentUser({ moderator: false, admin: true });
await visit("/tag/happy-monkey");
assert.ok(queryAll("#show-tag-info").length === 1);
await click("#show-tag-info");
assert.ok(exists(".tag-info .tag-name"), "show tag");
await click("#edit-synonyms");
await click("#add-synonyms .filter-input");
assert.equal(find(".tag-chooser-row").length, 2);
assert.deepEqual(
Array.from(find(".tag-chooser-row")).map((x) => x.dataset["value"]),
["monkey", "not-monkey"]
);
});
test("can filter tags page by category", async function (assert) {
await visit("/tag/planters");