mirror of https://github.com/databricks/cli.git
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package schema
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/databricks/cli/libs/jsonschema"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSchemaToDocs(t *testing.T) {
|
|
jsonSchema := &jsonschema.Schema{
|
|
Type: "object",
|
|
Description: "root doc",
|
|
Properties: map[string]*jsonschema.Schema{
|
|
"foo": {Type: "number", Description: "foo doc"},
|
|
"bar": {Type: "string"},
|
|
"octave": {
|
|
Type: "object",
|
|
AdditionalProperties: &jsonschema.Schema{Type: "number"},
|
|
Description: "octave docs",
|
|
},
|
|
"scales": {
|
|
Type: "object",
|
|
Description: "scale docs",
|
|
Items: &jsonschema.Schema{Type: "string"},
|
|
},
|
|
},
|
|
}
|
|
docs := schemaToDocs(jsonSchema)
|
|
docsJson, err := json.MarshalIndent(docs, " ", " ")
|
|
require.NoError(t, err)
|
|
|
|
expected :=
|
|
`{
|
|
"description": "root doc",
|
|
"properties": {
|
|
"bar": {
|
|
"description": ""
|
|
},
|
|
"foo": {
|
|
"description": "foo doc"
|
|
},
|
|
"octave": {
|
|
"description": "octave docs",
|
|
"additionalproperties": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"scales": {
|
|
"description": "scale docs",
|
|
"items": {
|
|
"description": ""
|
|
}
|
|
}
|
|
}
|
|
}`
|
|
t.Log("[DEBUG] actual: ", string(docsJson))
|
|
t.Log("[DEBUG] expected: ", expected)
|
|
assert.Equal(t, expected, string(docsJson))
|
|
}
|