Skip to content

Commit b43c196

Browse files
committed
Add tests
1 parent 7f4dab4 commit b43c196

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

spec/config_spec.rb

+40
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,46 @@
151151
expect(Settings.size).to eq(2)
152152
end
153153

154+
describe "load_and_set_settings in the Rails context" do
155+
if defined?(Rails)
156+
let(:config_name) { Rails.root.join("config", "initializers", "config.rb") }
157+
let(:default_settings_file_name) { Rails.root.join("config", "settings.yml") }
158+
let(:custom_settings_file_name) { Rails.root.join("config", "settings_custom.yml") }
159+
let(:spring_file_name_for_rails_6_1) { Rails.root.join("bin", "spring") }
160+
161+
before do
162+
File.write(default_settings_file_name, "default: default_value")
163+
File.write(custom_settings_file_name, "custom: custom_value")
164+
# workaround for Rails 6.1
165+
File.write(spring_file_name_for_rails_6_1, "") if Rails.version == "6.1.7.6"
166+
end
167+
168+
after do
169+
File.delete(config_name) if File.exist?(config_name)
170+
File.delete(default_settings_file_name) if File.exist?(default_settings_file_name)
171+
File.delete(custom_settings_file_name) if File.exist?(custom_settings_file_name)
172+
File.delete(spring_file_name_for_rails_6_1) if File.exist?(spring_file_name_for_rails_6_1)
173+
end
174+
175+
it "should read value only from default settings without config.rb" do
176+
values = `#{Rails.root.join("bin", "rails")} runner 'print "\#{Settings.default}|\#{Settings.custom}"'`
177+
expect(values).to eq("default_value|")
178+
end
179+
180+
it "should read value only from default settings without use of load_and_set_settings" do
181+
File.write(config_name, "Config.setup { |config| }")
182+
values = `#{Rails.root.join("bin", "rails")} runner 'print "\#{Settings.default}|\#{Settings.custom}"'`
183+
expect(values).to eq("default_value|")
184+
end
185+
186+
it "should read value only from custom settings with use of load_and_set_settings" do
187+
File.write(config_name, "Config.setup { |config| config.load_and_set_settings(['#{custom_settings_file_name}']) }")
188+
values = `#{Rails.root.join("bin", "rails")} runner 'print "\#{Settings.default}|\#{Settings.custom}"'`
189+
expect(values).to eq("|custom_value")
190+
end
191+
end
192+
end
193+
154194

155195

156196
context "Nested Settings" do

0 commit comments

Comments
 (0)