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