mirror of
https://github.com/discourse/discourse.git
synced 2024-12-10 08:53:42 +08:00
47 lines
1.3 KiB
Ruby
47 lines
1.3 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
RSpec.describe FoundUserWithStatusSerializer do
|
||
|
fab!(:user_status) { Fabricate(:user_status) }
|
||
|
fab!(:user) { Fabricate(:user, user_status: user_status) }
|
||
|
let(:serializer) { described_class.new(user, root: false) }
|
||
|
|
||
|
describe "#status" do
|
||
|
it "adds user status when enabled" do
|
||
|
SiteSetting.enable_user_status = true
|
||
|
|
||
|
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 user status when disabled" do
|
||
|
SiteSetting.enable_user_status = false
|
||
|
json = serializer.as_json
|
||
|
expect(json.keys).not_to include :status
|
||
|
end
|
||
|
|
||
|
it "doesn't add expired user status" do
|
||
|
SiteSetting.enable_user_status = true
|
||
|
|
||
|
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
|
||
|
SiteSetting.enable_user_status = true
|
||
|
|
||
|
user.clear_status!
|
||
|
user.reload
|
||
|
json = serializer.as_json
|
||
|
|
||
|
expect(json.keys).not_to include :status
|
||
|
end
|
||
|
end
|
||
|
end
|