Fix bug in Value.JSON(), with regression test

Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
This commit is contained in:
Solomon Hykes 2021-01-21 13:36:35 -08:00
parent 007b10f455
commit 7322ed1aa4
2 changed files with 18 additions and 0 deletions

View File

@ -186,6 +186,7 @@ func (v *Value) JSON() JSON {
}, },
nil, nil,
) )
out, _ = out.Get(cuePathToStrings(v.Path())...)
return out return out
} }

View File

@ -12,6 +12,23 @@ func TestSimple(t *testing.T) {
} }
} }
func TestJSON(t *testing.T) {
cc := &Compiler{}
v, err := cc.Compile("", `foo: hello: "world"`)
if err != nil {
t.Fatal(err)
}
b1 := v.JSON()
if string(b1) != `{"foo":{"hello":"world"}}` {
t.Fatal(b1)
}
// Reproduce a bug where Value.Get().JSON() ignores Get()
b2 := v.Get("foo").JSON()
if string(b2) != `{"hello":"world"}` {
t.Fatal(b2)
}
}
func TestCompileBootScript(t *testing.T) { func TestCompileBootScript(t *testing.T) {
cc := &Compiler{} cc := &Compiler{}
cfg, err := cc.Compile("boot.cue", defaultBootScript) cfg, err := cc.Compile("boot.cue", defaultBootScript)