Sha256: 72be1125849fbc91e29dbf603371971687e340a343d59897c191402ae9027b4d

Contents?: true

Size: 1.45 KB

Versions: 5

Compression:

Stored size: 1.45 KB

Contents

$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
require 'rspec'
require 'image_optim/hash_helpers'

describe ImageOptim::HashHelpers do
  HH = ImageOptim::HashHelpers

  context 'stringify/simbolyze' do
    WITH_SYMBOL_KEYS = {
      :a => 1,
      :b => {
        :c => [:a, 'a'],
        :d => {},
      },
    }

    WITH_STRING_KEYS = {
      'a' => 1,
      'b' => {
        'c' => [:a, 'a'],
        'd' => {},
      },
    }

    it 'should deep stringify hash keys' do
      expect(HH.deep_stringify_keys(WITH_SYMBOL_KEYS)).to eq(WITH_STRING_KEYS)
      expect(HH.deep_stringify_keys(WITH_STRING_KEYS)).to eq(WITH_STRING_KEYS)
    end

    it 'should deep symbolise hash keys' do
      expect(HH.deep_symbolise_keys(WITH_STRING_KEYS)).to eq(WITH_SYMBOL_KEYS)
      expect(HH.deep_symbolise_keys(WITH_SYMBOL_KEYS)).to eq(WITH_SYMBOL_KEYS)
    end
  end

  it 'should deep merge hashes' do
    merge_a = {
      :a => {
        :b => 1,
        :c => {
          :d => 2,
          :e => {
            :f => true,
          },
        },
      },
      :y => 10,
    }

    merge_b = {
      :a => {
        :b => 2,
        :c => {
          :d => 3,
          :e => false,
        },
      },
      'z' => 20,
    }

    merge_result = {
      :a => {
        :b => 2,
        :c => {
          :d => 3,
          :e => false,
        },
      },
      :y => 10,
      'z' => 20,
    }

    expect(HH.deep_merge(merge_a, merge_b)).to eq(merge_result)
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
image_optim-0.17.1 spec/image_optim/hash_helpers_spec.rb
image_optim-0.17.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.16.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.15.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.14.0 spec/image_optim/hash_helpers_spec.rb