mirror of
https://github.com/discourse/discourse.git
synced 2025-02-10 05:14:59 +00:00
Previous commit 479c0a3051
was done with the assumption that this info was defined on user serializer but it was actually defined on post serializer in core. This commit extends the user serializer for messages to add this data to the user.
Also correctly adds serializer test to ensure we actually have this data.
68 lines
1.6 KiB
Ruby
68 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
RSpec.describe ChatMessageUserSerializer do
|
|
subject do
|
|
user = Fabricate(:user, **params)
|
|
guardian = Guardian.new(user)
|
|
described_class.new(user, scope: guardian, root: nil).as_json
|
|
end
|
|
|
|
let(:params) do
|
|
{ trust_level: TrustLevel[1], admin: false, moderator: false, primary_group_id: nil }
|
|
end
|
|
|
|
context "with default user" do
|
|
it "displays user as regular" do
|
|
expect(subject[:new_user]).to eq(false)
|
|
expect(subject[:staff]).to eq(false)
|
|
expect(subject[:admin]).to eq(false)
|
|
expect(subject[:moderator]).to eq(false)
|
|
expect(subject[:primary_group_name]).to be_blank
|
|
end
|
|
end
|
|
|
|
context "when user is TL0" do
|
|
before { params[:trust_level] = TrustLevel[0] }
|
|
|
|
it "displays user as new" do
|
|
expect(subject[:new_user]).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "when user is staff" do
|
|
before { params[:admin] = true }
|
|
|
|
it "displays user as staff" do
|
|
expect(subject[:staff]).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "when user is admin" do
|
|
before { params[:admin] = true }
|
|
|
|
it "displays user as admin" do
|
|
expect(subject[:admin]).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "when user is moderator" do
|
|
before { params[:moderator] = true }
|
|
|
|
it "displays user as moderator" do
|
|
expect(subject[:moderator]).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "when user has a primary group" do
|
|
fab!(:group) { Fabricate(:group) }
|
|
|
|
before { params[:primary_group_id] = group.id }
|
|
|
|
it "displays user as moderator" do
|
|
expect(subject[:primary_group_name]).to eq(group.name)
|
|
end
|
|
end
|
|
end
|