Sha256: c8e3bae16b026f87f54d92010436a1d40c2e950cece4855490871392dd9eefe0

Contents?: true

Size: 1.39 KB

Versions: 16

Compression:

Stored size: 1.39 KB

Contents

require 'spec_helper'
require 'image_optim/hash_helpers'

describe ImageOptim::HashHelpers do
  before do
    stub_const('HashHelpers', ImageOptim::HashHelpers)
  end

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

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

    it 'deep stringifies hash keys' do
      expect(HashHelpers.deep_stringify_keys(symbol_keys)).to eq(string_keys)
      expect(HashHelpers.deep_stringify_keys(string_keys)).to eq(string_keys)
    end

    it 'deep symbolises hash keys' do
      expect(HashHelpers.deep_symbolise_keys(string_keys)).to eq(symbol_keys)
      expect(HashHelpers.deep_symbolise_keys(symbol_keys)).to eq(symbol_keys)
    end
  end

  it 'deep merges 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(HashHelpers.deep_merge(merge_a, merge_b)).to eq(merge_result)
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
image_optim-0.26.3 spec/image_optim/hash_helpers_spec.rb
image_optim-0.26.2 spec/image_optim/hash_helpers_spec.rb
discourse_image_optim-0.26.2 spec/image_optim/hash_helpers_spec.rb
discourse_image_optim-0.26.1 spec/image_optim/hash_helpers_spec.rb
image_optim-0.26.1 spec/image_optim/hash_helpers_spec.rb
image_optim-0.26.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.25.0 spec/image_optim/hash_helpers_spec.rb
discourse_image_optim-0.24.5 spec/image_optim/hash_helpers_spec.rb
image_optim-0.24.3 spec/image_optim/hash_helpers_spec.rb
discourse_image_optim-0.24.4 spec/image_optim/hash_helpers_spec.rb
image_optim-0.24.2 spec/image_optim/hash_helpers_spec.rb
image_optim-0.24.1 spec/image_optim/hash_helpers_spec.rb
image_optim-0.24.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.23.0 spec/image_optim/hash_helpers_spec.rb
image_optim-0.22.1 spec/image_optim/hash_helpers_spec.rb
image_optim-0.22.0 spec/image_optim/hash_helpers_spec.rb