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)) }