mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 08:34:39 +08:00
f7d7092a7a
The lastest version of rubocop-discourse enables rules regarding plugins.
85 lines
2.4 KiB
Ruby
85 lines
2.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe FoundUserSerializer do
|
|
fab!(:user)
|
|
let(:serializer) { described_class.new(user, root: false) }
|
|
|
|
describe "#id" do
|
|
it "returns user id" do
|
|
json = serializer.as_json
|
|
expect(json.keys).to include :id
|
|
expect(json[:id]).to eq(user.id)
|
|
end
|
|
end
|
|
|
|
describe "#name" do
|
|
it "returns name if enabled in site settings" do
|
|
SiteSetting.enable_names = true
|
|
json = serializer.as_json
|
|
expect(json.keys).to include :name
|
|
expect(json[:name]).to eq(user.name)
|
|
end
|
|
|
|
it "doesn't return name if disabled in site settings" do
|
|
SiteSetting.enable_names = false
|
|
json = serializer.as_json
|
|
expect(json.keys).not_to include :name
|
|
end
|
|
end
|
|
|
|
describe "#status" do
|
|
fab!(:user_status)
|
|
|
|
before { user.user_status = user_status }
|
|
|
|
context "when status is enabled in site settings" do
|
|
before { SiteSetting.enable_user_status = true }
|
|
|
|
it "doesn't add user status by default" do
|
|
serializer = FoundUserSerializer.new(user, root: false)
|
|
json = serializer.as_json
|
|
expect(json.keys).not_to include :status
|
|
end
|
|
|
|
context "when including user status" do
|
|
let(:serializer) { FoundUserSerializer.new(user, root: false, include_status: true) }
|
|
|
|
it "adds user status when enabled" do
|
|
json = serializer.as_json
|
|
|
|
expect(json[:status]).to_not be_nil do |status|
|
|
expect(status.description).to eq(user_status.description)
|
|
expect(status.emoji).to eq(user_status.emoji)
|
|
end
|
|
end
|
|
|
|
it "doesn't add expired user status" do
|
|
user.user_status.ends_at = 1.minutes.ago
|
|
serializer = described_class.new(user, scope: Guardian.new(user), root: false)
|
|
json = serializer.as_json
|
|
|
|
expect(json.keys).not_to include :status
|
|
end
|
|
|
|
it "doesn't return status if user doesn't have it" do
|
|
user.clear_status!
|
|
user.reload
|
|
json = serializer.as_json
|
|
|
|
expect(json.keys).not_to include :status
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when status is disabled in site settings" do
|
|
before { SiteSetting.enable_user_status = false }
|
|
let(:serializer) { FoundUserSerializer.new(user, root: false, include_status: true) }
|
|
|
|
it "doesn't add user status" do
|
|
json = serializer.as_json
|
|
expect(json.keys).not_to include :status
|
|
end
|
|
end
|
|
end
|
|
end
|