From 0350346a274a36d4ca16fb9311266aff44bf4b73 Mon Sep 17 00:00:00 2001 From: Jeremy Daer Date: Tue, 17 Dec 2024 10:53:16 -0800 Subject: [PATCH] Ensure Kredis.namespace is set in the thread that executes the test Otherwise, Kredis.namespace may be nil, resulting in wiping the whole Redis db in test teardown. --- lib/kredis/railtie.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/kredis/railtie.rb b/lib/kredis/railtie.rb index 1351f99..013cf8e 100644 --- a/lib/kredis/railtie.rb +++ b/lib/kredis/railtie.rb @@ -5,8 +5,18 @@ class Kredis::Railtie < ::Rails::Railtie initializer "kredis.testing" do ActiveSupport.on_load(:active_support_test_case) do - parallelize_setup { |worker| Kredis.namespace = "test-#{worker}" } - teardown { Kredis.clear_all } + $kredis_parallel_worker = nil + parallelize_setup { |worker| $kredis_parallel_worker = worker } + + setup do + @original_namespace = Kredis.namespace + Kredis.namespace = [ @original_namespace, :test, $kredis_parallel_worker ].compact.join("-") + end + + teardown do + Kredis.clear_all + Kredis.namespace = @original_namespace + end end end