DEV: Stop leaking state in dashboard controller specs (#19608)

A few specs in `dashboard_controller_spec.rb` set some state in redis but don't clean it up afterwards which causes other specs to fail when they're ran after `dashboard_controller_spec.rb`.

Related commit: 18467d4.
This commit is contained in:
Osama Sayegh 2022-12-23 15:41:30 +03:00 committed by GitHub
parent 953b823c5a
commit d8b39810d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 6 deletions

View File

@ -186,6 +186,21 @@ module DiscourseUpdates
Discourse.redis.hset(last_viewed_feature_dates_for_users_key, user_id.to_s, feature_date)
end
def clean_state
Discourse.redis.del(
last_installed_version_key,
latest_version_key,
critical_updates_available_key,
missing_versions_count_key,
updated_at_key,
missing_versions_list_key,
new_features_key,
last_viewed_feature_dates_for_users_key,
*Discourse.redis.keys("#{missing_versions_key_prefix}*"),
*Discourse.redis.keys(new_features_last_seen_key("*")),
)
end
private
def last_installed_version_key

View File

@ -60,8 +60,7 @@ RSpec.describe Jobs::CheckNewFeatures do
end
after do
Discourse.redis.del("new_features")
Discourse.redis.del("last_viewed_feature_dates_for_users_hash")
DiscourseUpdates.clean_state
end
it "backfills last viewed feature for admins who don't have last viewed feature" do

View File

@ -155,7 +155,7 @@ RSpec.describe DiscourseUpdates do
end
after do
Discourse.redis.del('new_features')
DiscourseUpdates.clean_state
end
it 'returns all items on the first run' do

View File

@ -172,12 +172,13 @@ RSpec.describe Admin::DashboardController do
end
describe '#new_features' do
after do
DiscourseUpdates.clean_state
end
context "when logged in as an admin" do
before do
sign_in(admin)
Discourse.redis.del "new_features_last_seen_user_#{admin.id}"
Discourse.redis.del "new_features"
Discourse.redis.del "last_viewed_feature_dates_for_users_hash"
end
it 'is empty by default' do
@ -284,6 +285,10 @@ RSpec.describe Admin::DashboardController do
end
describe '#mark_new_features_as_seen' do
after do
DiscourseUpdates.clean_state
end
context "when logged in as an admin" do
before { sign_in(admin) }