diff options
author | Stephen Aument <saument@gmail.com> | 2014-05-15 15:01:05 -0500 |
---|---|---|
committer | Stephen Aument <saument@gmail.com> | 2014-05-15 15:43:47 -0500 |
commit | 2c9721d49f50f2259cd2dfb9f3eb8e5c149bf795 (patch) | |
tree | a2a606fdfe61d428b8672206e0f9da175f662c54 /spec/hashie/extensions | |
parent | edd37c7acc02efbee31470458f8c787c9c05fe9c (diff) | |
download | hashie-2c9721d49f50f2259cd2dfb9f3eb8e5c149bf795.tar.gz |
Handle nil intermediate object on deep fetch
Diffstat (limited to 'spec/hashie/extensions')
-rw-r--r-- | spec/hashie/extensions/deep_fetch_spec.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/hashie/extensions/deep_fetch_spec.rb b/spec/hashie/extensions/deep_fetch_spec.rb index 3459042..3fd4b1d 100644 --- a/spec/hashie/extensions/deep_fetch_spec.rb +++ b/spec/hashie/extensions/deep_fetch_spec.rb @@ -11,6 +11,7 @@ module Hashie { title: 'Call of the Wild' }, { title: 'Moby Dick' } ], + shelves: nil, location: { address: '123 Library St.' } @@ -62,6 +63,19 @@ module Hashie ) end end + + context 'when the nested object is nil' do + it 'raises an UndefinedPathError' do + expect do + instance.deep_fetch(:library, :shelves, :address) + end.to( + raise_error( + DeepFetch::UndefinedPathError, + 'Could not fetch path (library > shelves > address) at address' + ) + ) + end + end end end end |