more test coverage and filling gaps on schema renderer

This commit is contained in:
quobix
2024-05-01 13:11:52 -04:00
parent 7f945e35c4
commit 8a1d3ae696
2 changed files with 31 additions and 0 deletions

View File

@@ -207,6 +207,10 @@ func (wr *SchemaRenderer) DiveIntoSchema(schema *base.Schema, key string, struct
structure[key] = wr.RandomWord(minLength, maxLength, 0) structure[key] = wr.RandomWord(minLength, maxLength, 0)
case binaryType: case binaryType:
structure[key] = base64.StdEncoding.EncodeToString([]byte(wr.RandomWord(minLength, maxLength, 0))) structure[key] = base64.StdEncoding.EncodeToString([]byte(wr.RandomWord(minLength, maxLength, 0)))
case bigIntType:
structure[key] = fmt.Sprint(wr.RandomInt(minLength, maxLength))
case decimalType:
structure[key] = fmt.Sprint(wr.RandomFloat64())
default: default:
// if there is a pattern supplied, then try and generate a string from it. // if there is a pattern supplied, then try and generate a string from it.
if schema.Pattern != "" { if schema.Pattern != "" {

View File

@@ -1143,6 +1143,33 @@ properties:
assert.Equal(t, `{"bigint":8821239038968084,"bigintStr":"9223372036854775808","decimal":3.141592653589793,"decimalStr":"3.14159265358979344719667586"}`, string(rendered)) assert.Equal(t, `{"bigint":8821239038968084,"bigintStr":"9223372036854775808","decimal":3.141592653589793,"decimalStr":"3.14159265358979344719667586"}`, string(rendered))
} }
func TestRenderSchema_NonStandard_Format_NoExamples(t *testing.T) {
testObject := `type: object
properties:
bigint:
type: integer
format: bigint
bigintStr:
type: string
format: bigint
decimal:
type: number
format: decimal
decimalStr:
type: string
format: decimal
`
compiled := getSchema([]byte(testObject))
schema := make(map[string]any)
wr := createSchemaRenderer()
wr.DiveIntoSchema(compiled, "pb33f", schema, 0)
assert.NotEmpty(t, schema["pb33f"].(map[string]interface{})["bigint"])
assert.NotEmpty(t, schema["pb33f"].(map[string]interface{})["bigintStr"])
assert.NotEmpty(t, schema["pb33f"].(map[string]interface{})["decimal"])
assert.NotEmpty(t, schema["pb33f"].(map[string]interface{})["decimalStr"])
}
func TestCreateRendererUsingDefaultDictionary(t *testing.T) { func TestCreateRendererUsingDefaultDictionary(t *testing.T) {
assert.NotNil(t, CreateRendererUsingDefaultDictionary()) assert.NotNil(t, CreateRendererUsingDefaultDictionary())
} }