Sha256: 1792629c5decf2e57ba805f8d1b702e1b7f1b6fca87395215c2f054e847364a6

Contents?: true

Size: 876 Bytes

Versions: 1

Compression:

Stored size: 876 Bytes

Contents

require 'spec_helper'

describe Crystal::HashWithStringifyKeys do
  def new(*args)
    Crystal::HashWithStringifyKeys.new(*args)
  end

  context '.new' do
    it 'stringifies keys when hash is passed' do
      expect(new(key: {key2: 1})).to eq Hash['key' => {'key2' => 1}]
    end

    it 'keeps a default value if one argument has been passed' do
      expect(new(1)['unknown']).to eq 1
    end

    it 'returns an empty hash when no args have been passed' do
      expect(new).to be_empty
      expect(new['unknown']).to be_nil
    end
  end

  context '#deep_merge with the same tag' do
    it 'returns a hash with stringified keys' do
      hash = new(:key => {:key2 => 1})
      merge = hash.deep_merge!(new(:key => {:key2 => 2}))
      expect(merge).to eq Hash['key' => {'key2' => 2}]
      expect(merge).to be_kind_of(Crystal::HashWithStringifyKeys)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
crystalmeta-1.0.0 spec/unit/hash_with_stringify_keys_spec.rb