discourse/spec/serializers/basic_user_serializer_spec.rb
Jeff Wong 036a24cf30
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.
2019-12-19 09:48:01 -08:00

31 lines
985 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe BasicUserSerializer do
describe '#as_json' do
let(:user) { Fabricate.build(:user) }
let(:serializer) { BasicUserSerializer.new(user, scope: Guardian.new(user), root: false) }
let(:json) { serializer.as_json }
it "returns the username" do
expect(json[:username]).to eq(user.username)
expect(json[:name]).to eq(user.name)
expect(json[:avatar_template]).to eq(user.avatar_template)
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
SiteSetting.enable_names = false
expect(json[:name]).to eq(nil)
end
end
end