DEV: Automatically update groups for test users with explicit TL (#25415)

For performance reasons we don't automatically add fabricated users to trust level auto-groups. However, when explicitly passing a trust level to the fabricator, in 99% of cases it means that trust level is relevant for the test, and we need the groups.

This change makes it so that when a trust level is explicitly passed to the fabricator, the auto-groups are refreshed. There's no longer a need to also pass refresh_auto_groups: true, which means clearer tests, fewer mistakes, and less confusion.
This commit is contained in:
Ted Johansson
2024-01-29 17:52:02 +08:00
committed by GitHub
parent dbdc4bbbd6
commit f0a46f8b6f
25 changed files with 92 additions and 97 deletions

View File

@ -83,8 +83,8 @@ RSpec.describe PostsController do
fab!(:admin)
fab!(:moderator) { Fabricate(:moderator, refresh_auto_groups: true) }
fab!(:user) { Fabricate(:user, refresh_auto_groups: true) }
fab!(:user_trust_level_0) { Fabricate(:trust_level_0, refresh_auto_groups: true) }
fab!(:user_trust_level_1) { Fabricate(:trust_level_1, refresh_auto_groups: true) }
fab!(:user_trust_level_0) { Fabricate(:trust_level_0) }
fab!(:user_trust_level_1) { Fabricate(:trust_level_1) }
fab!(:category)
fab!(:topic)
fab!(:post_by_user) { Fabricate(:post, user: user) }
@ -1643,7 +1643,7 @@ RSpec.describe PostsController do
it "it triggers flag_linked_posts_as_spam when the post creator returns spam" do
SiteSetting.newuser_spam_host_threshold = 1
sign_in(Fabricate(:user, trust_level: 0, refresh_auto_groups: true))
sign_in(Fabricate(:user, trust_level: TrustLevel[0]))
post "/posts.json",
params: {
@ -1936,7 +1936,7 @@ RSpec.describe PostsController do
end
context "with TL4 users" do
fab!(:trust_level_4) { Fabricate(:trust_level_4, refresh_auto_groups: true) }
fab!(:trust_level_4)
before { sign_in(trust_level_4) }