discourse/plugins/chat/spec/serializer/chat/chatables_serializer_spec.rb
Jan Cernik 234133bd3b
UX: Split hide_profile_and_presence user option (#29632)
It splits the hide_profile_and_presence user option and the default_hide_profile_and_presence site setting for more granular control. It keeps the option to hide the profile under /u/username/preferences/interface and adds the presence toggle in the quick user menu.

Co-authored-by: Régis Hanol <regis@hanol.fr>
2024-11-12 22:22:58 -03:00

39 lines
951 B
Ruby

# frozen_string_literal: true
describe Chat::ChatablesSerializer do
context "with status" do
fab!(:user_1) { Fabricate(:user) }
before do
SiteSetting.enable_user_status = true
user_1.set_status!("test", ":cat:")
end
it "includes status" do
serializer =
described_class.new(
OpenStruct.new({ users: [user_1] }),
scope: Guardian.new(Fabricate(:user)),
root: false,
)
expect(serializer.users[0]["model"][:status]).to be_present
end
context "with hidden profile" do
before { user_1.user_option.update!(hide_profile: true) }
it "doesn’t include status" do
serializer =
described_class.new(
OpenStruct.new({ users: [user_1] }),
scope: Guardian.new(Fabricate(:user)),
root: false,
)
expect(serializer.users[0]["model"][:status]).to be_blank
end
end
end
end