diff options
Diffstat (limited to 'spec/hashie/extensions')
-rw-r--r-- | spec/hashie/extensions/mash/symbolize_keys_spec.rb | 24 | ||||
-rw-r--r-- | spec/hashie/extensions/symbolize_keys_spec.rb | 5 |
2 files changed, 24 insertions, 5 deletions
diff --git a/spec/hashie/extensions/mash/symbolize_keys_spec.rb b/spec/hashie/extensions/mash/symbolize_keys_spec.rb index 9846737..bf58ea1 100644 --- a/spec/hashie/extensions/mash/symbolize_keys_spec.rb +++ b/spec/hashie/extensions/mash/symbolize_keys_spec.rb @@ -9,12 +9,30 @@ RSpec.describe Hashie::Extensions::Mash::SymbolizeKeys do end.to raise_error(ArgumentError) end - it 'symbolizes all keys in the Mash' do - my_mash = Class.new(Hashie::Mash) do + context 'when included in a Mash' do + class SymbolizedMash < Hashie::Mash include Hashie::Extensions::Mash::SymbolizeKeys end - expect(my_mash.new('test' => 'value').to_h).to eq(test: 'value') + it 'symbolizes string keys in the Mash' do + my_mash = SymbolizedMash.new('test' => 'value') + expect(my_mash.to_h).to eq(test: 'value') + end + + it 'preserves keys which cannot be symbolized' do + my_mash = SymbolizedMash.new( + '1' => 'symbolizable one', + 1 => 'one', + [1, 2, 3] => 'testing', + { 'test' => 'value' } => 'value' + ) + expect(my_mash.to_h).to eq( + :'1' => 'symbolizable one', + 1 => 'one', + [1, 2, 3] => 'testing', + { 'test' => 'value' } => 'value' + ) + end end context 'implicit to_hash on double splat' do diff --git a/spec/hashie/extensions/symbolize_keys_spec.rb b/spec/hashie/extensions/symbolize_keys_spec.rb index be345ea..34ac8d8 100644 --- a/spec/hashie/extensions/symbolize_keys_spec.rb +++ b/spec/hashie/extensions/symbolize_keys_spec.rb @@ -89,9 +89,10 @@ describe Hashie::Extensions::SymbolizeKeys do context 'singleton methods' do subject { Hash } let(:object) do - subject.new.merge('a' => 1, 'b' => { 'c' => 2 }).extend(Hashie::Extensions::SymbolizeKeys) + subject.new.merge('a' => 1, 'b' => { 'c' => 2 }, 1 => 'numeric key') + .extend(Hashie::Extensions::SymbolizeKeys) end - let(:expected_hash) { { a: 1, b: { c: 2 } } } + let(:expected_hash) { { a: 1, b: { c: 2 }, 1 => 'numeric key' } } describe '.symbolize_keys' do it 'does not raise error' do |