aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/env_helpers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/env_helpers.rb')
-rw-r--r--railties/test/env_helpers.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/railties/test/env_helpers.rb b/railties/test/env_helpers.rb
new file mode 100644
index 0000000000..336832b867
--- /dev/null
+++ b/railties/test/env_helpers.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+require "rails"
+
+module EnvHelpers
+ private
+
+ def with_rails_env(env)
+ Rails.instance_variable_set :@_env, nil
+ switch_env "RAILS_ENV", env do
+ switch_env "RACK_ENV", nil do
+ yield
+ end
+ end
+ end
+
+ def with_rack_env(env)
+ Rails.instance_variable_set :@_env, nil
+ switch_env "RACK_ENV", env do
+ switch_env "RAILS_ENV", nil do
+ yield
+ end
+ end
+ end
+
+ def switch_env(key, value)
+ old, ENV[key] = ENV[key], value
+ yield
+ ensure
+ ENV[key] = old
+ end
+end