DEV: Remove full group refreshes from tests (#25414)

We have all these calls to Group.refresh_automatic_groups! littered throughout the tests. Including tests that are seemingly unrelated to groups. This is because automatic group memberships aren't fabricated when making a vanilla user. There are two places where you'd want to use this:

You have fabricated a user that needs a certain trust level (which is now based on group membership.)
You need the system user to have a certain trust level.
In the first case, we can pass refresh_auto_groups: true to the fabricator instead. This is a more lightweight operation that only considers a single user, instead of all users in all groups.

The second case is no longer a thing after #25400.
This commit is contained in:
Ted Johansson
2024-01-25 14:28:26 +08:00
committed by GitHub
parent 74fd883a89
commit 57ea56ee05
64 changed files with 131 additions and 269 deletions

View File

@ -1081,7 +1081,6 @@ RSpec.describe PostCreator do
fab!(:target_user2) { Fabricate(:moderator) }
fab!(:unrelated_user) { Fabricate(:user) }
let(:post) do
Group.refresh_automatic_groups!
PostCreator.create!(
user,
title: "hi there welcome to my topic",
@ -1097,8 +1096,7 @@ RSpec.describe PostCreator do
SiteSetting.min_first_post_length = 20
SiteSetting.min_post_length = 25
SiteSetting.body_min_entropy = 20
user.update!(trust_level: 3)
Group.refresh_automatic_groups!
user.change_trust_level!(TrustLevel[3])
expect {
PostCreator.create!(
@ -1198,13 +1196,12 @@ RSpec.describe PostCreator do
end
it "does not increase posts count for small actions" do
topic = Fabricate(:private_message_topic, user: Fabricate(:user))
topic = Fabricate(:private_message_topic, user: Fabricate(:user, refresh_auto_groups: true))
Fabricate(:post, topic: topic)
1.upto(3) do |i|
user = Fabricate(:user)
Group.refresh_automatic_groups!
topic.invite(topic.user, user.username)
topic.reload
expect(topic.posts_count).to eq(1)
@ -1235,7 +1232,6 @@ RSpec.describe PostCreator do
end
it "works as expected" do
Group.refresh_automatic_groups!
# Invalid archetype
creator = PostCreator.new(user, base_args)
creator.create
@ -1324,7 +1320,6 @@ RSpec.describe PostCreator do
end
fab!(:unrelated) { Fabricate(:user) }
let(:post) do
Group.refresh_automatic_groups!
PostCreator.create!(
user,
title: "hi there welcome to my topic",