mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 18:13:58 +08:00
e67fe1d07c
By default, only 10 members are highlighted on group cards. However, joining/leaving a big group via the buttons on the group card results in up to 50 members being highlighted. For large groups, this causes the card to move off-screen. This happens because, while the initial render explicitly fetches only 10 members, we don't seem to apply the same limit as part of the member reload performed when a user leaves/joins via the buttons on the card. This PR fixes that by only making the first 10 users available for highlight regardless of the number of members loaded in the store.
53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Group Card", type: :system do
|
|
fab!(:current_user) { Fabricate(:user) }
|
|
fab!(:members) { Fabricate.times(12, :user) }
|
|
fab!(:topic) { Fabricate(:topic) }
|
|
fab!(:group) { Fabricate(:public_group, users: members) }
|
|
let(:mention) { "@#{group.name}" }
|
|
let(:post_with_mention) do
|
|
PostCreator.create!(current_user, topic_id: topic.id, raw: "Hello #{mention}")
|
|
end
|
|
let(:topic_page) { PageObjects::Pages::Topic.new }
|
|
let(:group_card) { PageObjects::Components::GroupCard.new }
|
|
|
|
before do
|
|
Jobs.run_immediately!
|
|
sign_in(current_user)
|
|
end
|
|
|
|
context "when joining/leaving a group" do
|
|
it "shows only highlighted members" do
|
|
topic_page.visit_topic(topic, post_number: post_with_mention.post_number)
|
|
topic_page.click_mention(post_with_mention, mention)
|
|
|
|
expect(group_card).to have_highlighted_member_count_of(
|
|
PageObjects::Components::GroupCard::MAX_MEMBER_HIGHLIGHT_COUNT,
|
|
)
|
|
|
|
group_card.click_join_button
|
|
|
|
expect(group_card).to have_leave_button
|
|
|
|
group.reload
|
|
|
|
expect(group.users).to include(current_user)
|
|
expect(group_card).to have_highlighted_member_count_of(
|
|
PageObjects::Components::GroupCard::MAX_MEMBER_HIGHLIGHT_COUNT,
|
|
)
|
|
|
|
group_card.click_leave_button
|
|
|
|
expect(group_card).to have_join_button
|
|
|
|
group.reload
|
|
|
|
expect(group.users).not_to include(current_user)
|
|
expect(group_card).to have_highlighted_member_count_of(
|
|
PageObjects::Components::GroupCard::MAX_MEMBER_HIGHLIGHT_COUNT,
|
|
)
|
|
end
|
|
end
|
|
end
|