mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 03:06:45 +08:00
DEV: Route PM only tags to PM tags show route (#17870)
Previously, PM only tags were being routed to the public topic list with the tag added as a filter. However, the public topic list does not fetch PMs and hence PM only tags did not provide any value when added to the Sidebar. This commit changes that by allowing the client to differentiate PM only tag and thus routes the link to the PM tags show route. Counts for PM only tags section links are not supported as of this commit and will be added in a follow up commit.
This commit is contained in:

committed by
GitHub

parent
e4fbb3be21
commit
3deabb00d4
@ -220,45 +220,39 @@ RSpec.describe CurrentUserSerializer do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#sidebar_tag_names' do
|
||||
describe '#sidebar_tags' do
|
||||
fab!(:tag_sidebar_section_link) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
fab!(:tag_sidebar_section_link_2) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
|
||||
it "is not included when SiteSeting.enable_experimental_sidebar_hamburger is false" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = false
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tag_names]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included when SiteSeting.tagging_enabled is false" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tag_names]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included when experimental sidebar has not been enabled" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = false
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tag_names]).to eq(nil)
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is present when experimental sidebar has been enabled" do
|
||||
it "is not included when tagging has not been enabled" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = true
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tag_names]).to contain_exactly(
|
||||
tag_sidebar_section_link.linkable.name,
|
||||
tag_sidebar_section_link_2.linkable.name
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is present when experimental sidebar and tagging has been enabled" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
tag_sidebar_section_link_2.linkable.update!(pm_topic_count: 5, topic_count: 0)
|
||||
|
||||
json = serializer.as_json
|
||||
|
||||
expect(json[:sidebar_tags]).to contain_exactly(
|
||||
{ name: tag_sidebar_section_link.linkable.name, pm_only: false },
|
||||
{ name: tag_sidebar_section_link_2.linkable.name, pm_only: true }
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -376,4 +376,52 @@ RSpec.describe UserSerializer do
|
||||
expect(json[:user_api_keys][2][:id]).to eq(user_api_key_2.id)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#sidebar_tags' do
|
||||
fab!(:tag_sidebar_section_link) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
fab!(:tag_sidebar_section_link_2) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
|
||||
context 'when viewing self' do
|
||||
subject(:json) { UserSerializer.new(user, scope: Guardian.new(user), root: false).as_json }
|
||||
|
||||
it "is not included when SiteSeting.enable_experimental_sidebar_hamburger is false" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = false
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included when SiteSeting.tagging_enabled is false" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is present when experimental sidebar and tagging has been enabled" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
tag_sidebar_section_link_2.linkable.update!(pm_topic_count: 5, topic_count: 0)
|
||||
|
||||
expect(json[:sidebar_tags]).to contain_exactly(
|
||||
{ name: tag_sidebar_section_link.linkable.name, pm_only: false },
|
||||
{ name: tag_sidebar_section_link_2.linkable.name, pm_only: true }
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when viewing another user' do
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
|
||||
subject(:json) { UserSerializer.new(user, scope: Guardian.new(user2), root: false).as_json }
|
||||
|
||||
it "is not present even when experimental sidebar and tagging has been enabled" do
|
||||
SiteSetting.enable_experimental_sidebar_hamburger = true
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user