spec/config_spec.rb in anyway_config-1.1.2 vs spec/config_spec.rb in anyway_config-1.1.3

- old
+ new

@@ -52,10 +52,15 @@ it "load config from YAML" do expect(conf.host).to eq "test.host" end + it "sets overrides after loading YAML" do + config = CoolConfig.new(overrides: { host: 'overrided.host' }) + expect(config.host).to eq "overrided.host" + end + if Rails.application.respond_to?(:secrets) it "load config from secrets" do expect(conf.user[:name]).to eq "test" end else @@ -77,10 +82,21 @@ it "handle ENV in YML thru ERB" do ENV['ANYWAY_SECRET_PASSWORD'] = 'my_pass' expect(conf.user[:password]).to eq 'my_pass' end + + it "overrides loaded value by explicit" do + ENV['ANYWAY_SECRET_PASSWORD'] = 'my_pass' + + config = CoolConfig.new( + overrides: { + user: { password: 'explicit_password' } + } + ) + expect(config.user[:password]).to eq "explicit_password" + end end describe "clear" do let(:conf_cleared) { conf.clear } @@ -116,21 +132,27 @@ ENV['MYAPP_NAME'] = 'my_app' Anyway.env.clear data = Anyway::Config.for(:my_app) expect(data[:test]).to eq 1 expect(data[:name]).to eq 'my_app' - if Rails.application.respond_to?(:secrets) - expect(data[:secret]).to eq 'my_secret' - end + expect(data[:secret]).to eq 'my_secret' if Rails.application.respond_to?(:secrets) end end context "config without defaults" do let(:conf) { SmallConfig.new } it "works" do expect(conf.meta).to be_nil expect(conf.data).to be_nil + end + end + + context "config with initial hash values" do + let(:conf) { SmallConfig.new(overrides: { 'meta': 'dummy' }) } + + it "works" do + expect(conf.meta).to eq 'dummy' end end context "when name is missing" do let(:config) do