Sha256: 4aa9fcc09e12c66f7c0ce9d3dfec4d0edcecd2b4794d4644369a63acbc1837a4

Contents?: true

Size: 1.21 KB

Versions: 9

Compression:

Stored size: 1.21 KB

Contents

require "spec_helper"

require "config_hound/deep_merge"

describe ConfigHound do

  describe ".deep_merge_into" do

    let(:result) { ConfigHound.deep_merge_into(v1, v2) }

    context "with non-Hash arguments" do

      let(:v1) { "a" }
      let(:v2) { "b" }

      it "takes the second value" do
        expect(result).to eq("b")
      end

    end

    context "with independent keys" do

      let(:v1) { {a: 1} }
      let(:v2) { {b: 2} }

      it "merges" do
        expect(result).to eq(a: 1, b: 2)
      end

    end

    context "when keys clash" do

      let(:v1) { {x: 1} }
      let(:v2) { {x: 2} }

      it "takes the second value" do
        expect(result).to eq(x: 2)
      end

    end

    context "with nested values" do

      let(:v1) do
        {
          :foo => {
            :bar => {
              :x => 1
            }
          }
        }
      end

      let(:v2) do
        {
          :foo => {
            :bar => {
              :y => 2
            }
          }
        }
      end

      it "merges deeply" do
        expect(result).to eq(
          :foo => {
            :bar => {
              :x => 1,
              :y => 2
            }
          }
        )
      end

    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
config_hound-1.5.0 spec/config_hound/deep_merge_spec.rb
config_hound-1.4.3 spec/config_hound/deep_merge_spec.rb
config_hound-1.4.2 spec/config_hound/deep_merge_spec.rb
config_hound-1.4.1 spec/config_hound/deep_merge_spec.rb
config_hound-1.4.0 spec/config_hound/deep_merge_spec.rb
config_hound-1.3.2 spec/config_hound/deep_merge_spec.rb
config_hound-1.3.0 spec/config_hound/deep_merge_spec.rb
config_hound-1.2.1 spec/config_hound/deep_merge_spec.rb
config_hound-1.2.0 spec/config_hound/deep_merge_spec.rb