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

@ -2,15 +2,15 @@
RSpec.describe PostAction do
it "triggers the 'flag_reviewed' event when there was at least one flag" do
admin = Fabricate(:admin, refresh_auto_groups: true)
user = Fabricate(:user, trust_level: TrustLevel[4])
post = Fabricate(:post)
events = DiscourseEvent.track_events { PostDestroyer.new(admin, post).destroy }
events = DiscourseEvent.track_events { PostDestroyer.new(user, post).destroy }
expect(events.map { |e| e[:event_name] }).to_not include(:flag_reviewed)
flagged_post = Fabricate(:post)
PostActionCreator.spam(admin, flagged_post)
events = DiscourseEvent.track_events { PostDestroyer.new(admin, flagged_post).destroy }
PostActionCreator.spam(user, flagged_post)
events = DiscourseEvent.track_events { PostDestroyer.new(user, flagged_post).destroy }
expect(events.map { |e| e[:event_name] }).to include(:flag_reviewed)
end
end