influxdb/pkg/jsonnet/decode_test.go

49 lines
851 B
Go

package jsonnet_test
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
"github.com/influxdata/influxdb/v2/pkg/jsonnet"
"github.com/stretchr/testify/require"
)
func TestDecoder(t *testing.T) {
type (
person struct {
Name string `json:"name"`
Welcome string `json:"welcome"`
}
persons struct {
Person1 person `json:"person1"`
Person2 person `json:"person2"`
}
)
const entry = `{
person1: {
name: "Alice",
welcome: "Hello " + self.name + "!",
},
person2: self.person1 { name: "Bob" },
}`
var out persons
require.NoError(t, jsonnet.NewDecoder(strings.NewReader(entry)).Decode(&out))
expected := persons{
Person1: person{
Name: "Alice",
Welcome: "Hello Alice!",
},
Person2: person{
Name: "Bob",
Welcome: "Hello Bob!",
},
}
assert.Equal(t, expected, out)
}