From 8f39cf6bfc4fff7710cb657f1c153ce568e71c6a Mon Sep 17 00:00:00 2001 From: Bianca Nenciu Date: Wed, 12 Sep 2018 20:52:24 +0200 Subject: [PATCH] FIX: Permit unpinning an unlisted topic. --- .../discourse/widgets/topic-admin-menu.js.es6 | 4 +-- test/javascripts/acceptance/topic-test.js.es6 | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/widgets/topic-admin-menu.js.es6 b/app/assets/javascripts/discourse/widgets/topic-admin-menu.js.es6 index 52b0616abe..7feb7d150f 100644 --- a/app/assets/javascripts/discourse/widgets/topic-admin-menu.js.es6 +++ b/app/assets/javascripts/discourse/widgets/topic-admin-menu.js.es6 @@ -184,8 +184,8 @@ export default createWidget("topic-admin-menu", { const isPrivateMessage = topic.get("isPrivateMessage"); - if (!isPrivateMessage && topic.get("visible")) { - const featured = topic.get("pinned_at") || topic.get("isBanner"); + const featured = topic.get("pinned_at") || topic.get("isBanner"); + if (!isPrivateMessage && (topic.get("visible") || featured)) { buttons.push({ className: "topic-admin-pin", action: "showFeatureTopic", diff --git a/test/javascripts/acceptance/topic-test.js.es6 b/test/javascripts/acceptance/topic-test.js.es6 index bb4483c90c..ba3e28a0c8 100644 --- a/test/javascripts/acceptance/topic-test.js.es6 +++ b/test/javascripts/acceptance/topic-test.js.es6 @@ -7,6 +7,18 @@ acceptance("Topic", { server.put("/posts/398/wiki", () => { return helper.response({}); }); + + server.get("/topics/feature_stats.json", () => { + return helper.response({ + pinned_in_category_count: 0, + pinned_globally_count: 0, + banner_count: 0 + }); + }); + + server.put("/t/280/make-banner", () => { + return helper.response({}); + }); } }); @@ -215,6 +227,23 @@ QUnit.test("remove featured link", async assert => { // assert.ok(!exists('.title-wrapper .topic-featured-link'), 'link is gone'); }); +QUnit.test("Unpinning unlisted topic", async assert => { + await visit("/t/internationalization-localization/280"); + + await click(".toggle-admin-menu"); + await click(".topic-admin-pin .btn"); + await click(".btn-primary:last"); + + await click(".toggle-admin-menu"); + await click(".topic-admin-visible .btn"); + + await click(".toggle-admin-menu"); + assert.ok( + exists(".topic-admin-pin"), + "it should show the multi select menu" + ); +}); + QUnit.test("selecting posts", async assert => { await visit("/t/internationalization-localization/280"); await click(".toggle-admin-menu");