mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 23:36:11 +08:00
DEV: Move discourse-chat
to the core repo. (#18776)
As part of this move, we are also renaming `discourse-chat` to `chat`.
This commit is contained in:
72
plugins/chat/spec/components/chat_seeder_spec.rb
Normal file
72
plugins/chat/spec/components/chat_seeder_spec.rb
Normal file
@ -0,0 +1,72 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe ChatSeeder do
|
||||
fab!(:staff_category) { Fabricate(:private_category, name: "Staff", group: Group[:staff]) }
|
||||
fab!(:general_category) { Fabricate(:category, name: "General") }
|
||||
|
||||
fab!(:staff_user1) do
|
||||
Fabricate(:user, last_seen_at: 1.minute.ago, groups: [Group[:staff], Group[:everyone]])
|
||||
end
|
||||
fab!(:staff_user2) do
|
||||
Fabricate(:user, last_seen_at: 1.minute.ago, groups: [Group[:staff], Group[:everyone]])
|
||||
end
|
||||
|
||||
fab!(:regular_user) { Fabricate(:user, last_seen_at: 1.minute.ago, groups: [Group[:everyone]]) }
|
||||
|
||||
before do
|
||||
SiteSetting.staff_category_id = staff_category.id
|
||||
SiteSetting.general_category_id = general_category.id
|
||||
Jobs.run_immediately!
|
||||
end
|
||||
|
||||
def assert_channel_was_correctly_seeded(channel, group)
|
||||
expect(channel).to be_present
|
||||
expect(channel.auto_join_users).to eq(true)
|
||||
|
||||
expected_members_count = GroupUser.where(group: group).count
|
||||
memberships_count =
|
||||
UserChatChannelMembership.automatic.where(chat_channel: channel, following: true).count
|
||||
|
||||
expect(memberships_count).to eq(expected_members_count)
|
||||
end
|
||||
|
||||
it "seeds default channels" do
|
||||
ChatSeeder.new.execute
|
||||
|
||||
staff_channel = ChatChannel.find_by(chatable: staff_category)
|
||||
general_channel = ChatChannel.find_by(chatable: general_category)
|
||||
|
||||
assert_channel_was_correctly_seeded(staff_channel, Group[:staff])
|
||||
assert_channel_was_correctly_seeded(general_channel, Group[:everyone])
|
||||
|
||||
expect(staff_category.custom_fields[Chat::HAS_CHAT_ENABLED]).to eq(true)
|
||||
expect(general_category.reload.custom_fields[Chat::HAS_CHAT_ENABLED]).to eq(true)
|
||||
expect(SiteSetting.needs_chat_seeded).to eq(false)
|
||||
end
|
||||
|
||||
it "applies a name to the general category channel" do
|
||||
expected_name = general_category.name
|
||||
|
||||
ChatSeeder.new.execute
|
||||
|
||||
general_channel = ChatChannel.find_by(chatable: general_category)
|
||||
expect(general_channel.name).to eq(expected_name)
|
||||
end
|
||||
|
||||
it "applies a name to the staff category channel" do
|
||||
expected_name = staff_category.name
|
||||
|
||||
ChatSeeder.new.execute
|
||||
|
||||
staff_channel = ChatChannel.find_by(chatable: staff_category)
|
||||
expect(staff_channel.name).to eq(expected_name)
|
||||
end
|
||||
|
||||
it "does nothing when 'SiteSetting.needs_chat_seeded' is false" do
|
||||
SiteSetting.needs_chat_seeded = false
|
||||
|
||||
expect { ChatSeeder.new.execute }.not_to change { ChatChannel.count }
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user