Skip to content

Instantly share code, notes, and snippets.

@jandudulski
Created March 15, 2019 14:02
Show Gist options
  • Save jandudulski/b97dc4d6a8df6176269b801fbf95af80 to your computer and use it in GitHub Desktop.
Save jandudulski/b97dc4d6a8df6176269b801fbf95af80 to your computer and use it in GitHub Desktop.
Rails configuration injection for specs
# config/application.rb
module MyApp
class Application < Rails::Application
config.my_setting = "prod value"
end
end
# spec/support/my_setting.rb
RSpec.configure do |config|
config.around(:each) do |example|
orig_my_setting = Rails.configuration.my_setting
if example.metadata[:my_setting]
Rails.configuration.my_setting = example.metadata[:my_setting]
end
example.run
Rails.configuration.my_setting = orig_my_setting
end
end
# spec/something/some_spec.rb
RSpec.describe "Example" do
it "uses standard setting" do
expect(Rails.configuration.my_setting).to eq("prod value")
end
it "overwrites the config", my_setting: "test value" do
expect(Rails.configuration.my_setting).to eq("test value")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment