diff options
Diffstat (limited to 'spec/hashie/extensions/mash')
-rw-r--r-- | spec/hashie/extensions/mash/symbolize_keys_spec.rb | 24 |
1 files changed, 21 insertions, 3 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 |