FIX: correct user serializer user method for extended serializer (#8590)
A small fix for Basic User Serializers where some downstream serializers do not correctly set user objects. This caused some issues in certain plugins that depend on the user method to return a user.
This commit is contained in:
parent
91b290c784
commit
036a24cf30
|
@ -20,6 +20,6 @@ class BasicUserSerializer < ApplicationSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def user
|
def user
|
||||||
object[:user] || object
|
object[:user] || object.try(:user) || object
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
Fabricator(:post_action) do
|
||||||
|
post
|
||||||
|
user
|
||||||
|
post_action_type_id PostActionType.types[:like]
|
||||||
|
end
|
|
@ -14,6 +14,14 @@ describe BasicUserSerializer do
|
||||||
expect(json[:avatar_template]).to eq(user.avatar_template)
|
expect(json[:avatar_template]).to eq(user.avatar_template)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'extended serializers' do
|
||||||
|
let(:post_action) { Fabricate(:post_action, user: user) }
|
||||||
|
let(:serializer) { PostActionUserSerializer.new(post_action, scope: Guardian.new(user), root: false) }
|
||||||
|
it "returns the user correctly" do
|
||||||
|
expect(serializer.user.username).to eq(user.username)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it "doesn't return the name it when `enable_names` is false" do
|
it "doesn't return the name it when `enable_names` is false" do
|
||||||
SiteSetting.enable_names = false
|
SiteSetting.enable_names = false
|
||||||
expect(json[:name]).to eq(nil)
|
expect(json[:name]).to eq(nil)
|
||||||
|
|
Loading…
Reference in New Issue