From 8efc46deae55f1cff5ddaad74078855535cb3b1c Mon Sep 17 00:00:00 2001 From: mfarah Date: Mon, 5 Oct 2015 14:47:24 +1100 Subject: [PATCH] Fixed bad paths causing recursing down scalar values --- data_navigator.go | 6 +++--- data_navigator_test.go | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/data_navigator.go b/data_navigator.go index 9806fc6..1f1acac 100644 --- a/data_navigator.go +++ b/data_navigator.go @@ -33,10 +33,10 @@ func recurse(value interface{}, head string, tail []string) interface{} { log.Fatalf("Error accessing array: %v", err) } return readArray(value.([]interface{}), index, tail) - case nil: - return nil - default: + case map[interface{}]interface{}: return readMap(value.(map[interface{}]interface{}), head, tail) + default: + return nil } } diff --git a/data_navigator_test.go b/data_navigator_test.go index a7f12a3..4f4de21 100644 --- a/data_navigator_test.go +++ b/data_navigator_test.go @@ -44,6 +44,10 @@ func TestReadMap_key_doesnt_exist(t *testing.T) { assertResult(t, nil, readMap(parsedData, "b.x.f", []string{"c"})) } +func TestReadMap_recurse_against_string(t *testing.T) { + assertResult(t, nil, readMap(parsedData, "a", []string{"b"})) +} + func TestReadMap_with_array(t *testing.T) { assertResult(t, 4, readMap(parsedData, "b", []string{"d", "1"})) }