DEV: Call Discourse.redis.flushdb after the end of each test (#29117)

There have been too many flaky tests as a result of leaking state in
Redis so it is easier to resolve them by ensuring we flush Redis'
database.

Locally on my machine, calling `Discourse.redis.flushdb` takes around
0.1ms which means this change will have very little impact on test
runtimes.
This commit is contained in:
Alan Guo Xiang Tan
2024-10-09 07:19:31 +08:00
committed by GitHub
parent 44fe8c62d6
commit ed6c9d1545
38 changed files with 10 additions and 154 deletions

View File

@ -199,8 +199,6 @@ RSpec.describe Auth::DefaultCurrentUserProvider do
context "with rate limiting" do
before { RateLimiter.enable }
use_redis_snapshotting
it "rate limits admin api requests" do
global_setting :max_admin_api_reqs_per_minute, 3

View File

@ -230,8 +230,6 @@ RSpec.describe Middleware::AnonymousCache do
describe "#force_anonymous!" do
before { RateLimiter.enable }
use_redis_snapshotting
it "will revert to anonymous once we reach the limit" do
is_anon = false

View File

@ -258,8 +258,6 @@ RSpec.describe Middleware::RequestTracker do
)
end
use_redis_snapshotting
def log_topic_view(authenticated: false, deferred: false)
headers = { "action_dispatch.remote_ip" => "127.0.0.1" }
@ -519,8 +517,6 @@ RSpec.describe Middleware::RequestTracker do
freeze_time_safe
end
use_redis_snapshotting
after { Rails.logger = @orig_logger }
let :middleware do

View File

@ -3,8 +3,6 @@
require "mini_scheduler_long_running_job_logger"
RSpec.describe MiniSchedulerLongRunningJobLogger do
use_redis_snapshotting
class Every10MinutesJob
extend ::MiniScheduler::Schedule

View File

@ -9,8 +9,6 @@ RSpec.describe PostActionCreator do
describe "rate limits" do
before { RateLimiter.enable }
use_redis_snapshotting
it "limits redo/undo" do
PostActionCreator.like(user, post)
PostActionDestroyer.destroy(user, post, :like)

View File

@ -306,10 +306,6 @@ RSpec.describe PostRevisor do
end
describe "revise wiki" do
# There used to be a bug where wiki changes were considered posting "too similar"
# so this is enabled and checked
use_redis_snapshotting
before { SiteSetting.unique_posts_mins = 10 }
it "allows the user to change it to a wiki" do
@ -803,8 +799,6 @@ RSpec.describe PostRevisor do
SiteSetting.editing_grace_period = 0
end
use_redis_snapshotting
it "triggers a rate limiter" do
EditRateLimiter.any_instance.expects(:performed!)
post_revisor.revise!(changed_by, raw: "updated body")

View File

@ -34,10 +34,6 @@ RSpec.xdescribe SiteSettings::DeprecatedSettings do
describe "when not overriding deprecated settings" do
let(:override) { false }
# Necessary because Discourse.deprecate uses redis to see if the warning
# was already logged.
use_redis_snapshotting
# NOTE: This fixture has some completely made up settings (e.g. min_trust_level_to_allow_invite_tl_and_staff)
let(:deprecated_test) { "#{Rails.root}/spec/fixtures/site_settings/deprecated_test.yml" }

View File

@ -1489,8 +1489,6 @@ RSpec.describe TopicQuery do
end
describe "#list_suggested_for" do
use_redis_snapshotting
def clear_cache!
Discourse.redis.keys("random_topic_cache*").each { |k| Discourse.redis.del k }
end