mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 03:40:00 +08:00
FIX: Include group flair in homepage category topic lists (#21268)
Followup to c03f83bbea
.
The `flair_group_id` parameter is now required to show the flair, and this serializer was missing that detail.
This also fixes a typo in the `include_flair_group_name?` method.
This commit is contained in:
parent
b988f13817
commit
3abc542e63
|
@ -7,6 +7,7 @@ module UserPrimaryGroupMixin
|
||||||
:flair_url,
|
:flair_url,
|
||||||
:flair_bg_color,
|
:flair_bg_color,
|
||||||
:flair_color,
|
:flair_color,
|
||||||
|
:flair_group_id,
|
||||||
:admin,
|
:admin,
|
||||||
:moderator,
|
:moderator,
|
||||||
:trust_level
|
:trust_level
|
||||||
|
@ -24,7 +25,7 @@ module UserPrimaryGroupMixin
|
||||||
object&.flair_group&.name
|
object&.flair_group&.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def include_flair_group_name?
|
def include_flair_name?
|
||||||
object&.flair_group.present?
|
object&.flair_group.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,6 +45,14 @@ module UserPrimaryGroupMixin
|
||||||
object&.flair_group&.flair_bg_color.present?
|
object&.flair_group&.flair_bg_color.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def flair_group_id
|
||||||
|
object&.flair_group_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_flair_group_id?
|
||||||
|
object&.flair_group_id.present?
|
||||||
|
end
|
||||||
|
|
||||||
def flair_color
|
def flair_color
|
||||||
object&.flair_group&.flair_color
|
object&.flair_group&.flair_color
|
||||||
end
|
end
|
||||||
|
|
40
spec/serializers/poster_serializer_spec.rb
Normal file
40
spec/serializers/poster_serializer_spec.rb
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
RSpec.describe PosterSerializer do
|
||||||
|
let(:poster) { Fabricate(:user, admin: false, moderator: false) }
|
||||||
|
|
||||||
|
it "serializes the correct attributes" do
|
||||||
|
expect(PosterSerializer.new(poster).attributes.keys).to contain_exactly(
|
||||||
|
:trust_level,
|
||||||
|
:avatar_template,
|
||||||
|
:id,
|
||||||
|
:name,
|
||||||
|
:username,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "includes group flair attributes when appropriate" do
|
||||||
|
group =
|
||||||
|
Fabricate(
|
||||||
|
:group,
|
||||||
|
name: "Groupster",
|
||||||
|
flair_bg_color: "#111111",
|
||||||
|
flair_color: "#999999",
|
||||||
|
flair_icon: "icon",
|
||||||
|
)
|
||||||
|
groupie = Fabricate(:user, flair_group: group)
|
||||||
|
|
||||||
|
expect(PosterSerializer.new(groupie).attributes.keys).to contain_exactly(
|
||||||
|
:trust_level,
|
||||||
|
:avatar_template,
|
||||||
|
:id,
|
||||||
|
:name,
|
||||||
|
:username,
|
||||||
|
:flair_bg_color,
|
||||||
|
:flair_color,
|
||||||
|
:flair_group_id,
|
||||||
|
:flair_name,
|
||||||
|
:flair_url,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user