mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 09:36:19 +08:00
41f8bff2c3
Why this change? It is very unlikely that we need to ever JS for system tests considering that we rely on a JS framework on the frontend.
73 lines
2.2 KiB
Ruby
73 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
RSpec.describe "Channel - Info - Members page", type: :system do
|
||
let(:chat_page) { PageObjects::Pages::Chat.new }
|
||
|
||
fab!(:current_user) { Fabricate(:user) }
|
||
fab!(:channel_1) { Fabricate(:category_channel) }
|
||
|
||
before do
|
||
chat_system_bootstrap
|
||
sign_in(current_user)
|
||
end
|
||
|
||
context "as unauthorized user" do
|
||
before { SiteSetting.chat_allowed_groups = Fabricate(:group).id }
|
||
|
||
it "can’t see channel members" do
|
||
chat_page.visit_channel_members(channel_1)
|
||
|
||
expect(page).to have_current_path("/latest")
|
||
end
|
||
end
|
||
|
||
context "as authorized user" do
|
||
context "with no members" do
|
||
it "redirects to about page" do
|
||
chat_page.visit_channel_members(channel_1)
|
||
|
||
expect(page).to have_current_path("/chat/c/#{channel_1.slug}/#{channel_1.id}/info/about")
|
||
end
|
||
end
|
||
|
||
context "with members" do
|
||
before do
|
||
channel_1.add(current_user)
|
||
channel_1.add(Fabricate(:user, username: "cat"))
|
||
98.times { channel_1.add(Fabricate(:user)) }
|
||
end
|
||
|
||
it "shows all members" do
|
||
Jobs.run_immediately!
|
||
channel_1.update!(user_count_stale: true)
|
||
Jobs::Chat::UpdateChannelUserCount.new.execute(chat_channel_id: channel_1.id)
|
||
|
||
chat_page.visit_channel_members(channel_1)
|
||
|
||
expect(page).to have_selector(".channel-members-view__list-item", count: 50, wait: 15)
|
||
|
||
scroll_to(find(".channel-members-view__list-item:nth-child(50)"))
|
||
|
||
expect(page).to have_selector(".channel-members-view__list-item", count: 100, wait: 15)
|
||
|
||
scroll_to(find(".channel-members-view__list-item:nth-child(100)"))
|
||
|
||
expect(page).to have_selector(".channel-members-view__list-item", count: 100, wait: 15)
|
||
end
|
||
|
||
context "with filter" do
|
||
it "filters members" do
|
||
Jobs.run_immediately!
|
||
channel_1.update!(user_count_stale: true)
|
||
Jobs::Chat::UpdateChannelUserCount.new.execute(chat_channel_id: channel_1.id)
|
||
|
||
chat_page.visit_channel_members(channel_1)
|
||
find(".channel-members-view__search-input").fill_in(with: "cat")
|
||
|
||
expect(page).to have_selector(".channel-members-view__list-item", count: 1, text: "cat")
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|