summaryrefslogtreecommitdiff
path: root/spec/hashie/extensions/mash/symbolize_keys_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/hashie/extensions/mash/symbolize_keys_spec.rb')
-rw-r--r--spec/hashie/extensions/mash/symbolize_keys_spec.rb24
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