summaryrefslogtreecommitdiff
path: root/spec/hashie/extensions
diff options
context:
space:
mode:
authorStephen Aument <saument@gmail.com>2014-05-15 15:01:05 -0500
committerStephen Aument <saument@gmail.com>2014-05-15 15:43:47 -0500
commit2c9721d49f50f2259cd2dfb9f3eb8e5c149bf795 (patch)
treea2a606fdfe61d428b8672206e0f9da175f662c54 /spec/hashie/extensions
parentedd37c7acc02efbee31470458f8c787c9c05fe9c (diff)
downloadhashie-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.rb14
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