Merge pull request #65 from blocklayerhq/fix-value-json

Fix bug in Value.JSON(), with regression test
This commit is contained in:
Andrea Luzzardi 2021-01-21 15:52:16 -08:00 committed by GitHub
commit 2ee27e83f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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)