From 52e4d60aaa2a918580139e53fb5927b826565121 Mon Sep 17 00:00:00 2001 From: bbernays Date: Mon, 31 Mar 2025 13:27:21 -0500 Subject: [PATCH 1/3] Update docs.go --- jsonschema/docs/docs.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/jsonschema/docs/docs.go b/jsonschema/docs/docs.go index 9809b0c..ffd8555 100644 --- a/jsonschema/docs/docs.go +++ b/jsonschema/docs/docs.go @@ -11,15 +11,24 @@ import ( "github.com/invopop/jsonschema" ) +func generateDoc(root jsonschema.Schema, headerLevel int) (string, error) { + buff := new(strings.Builder) + toc, err := generate(&root, headerLevel, buff) + return toc + "\n\n" + buff.String(), err +} + +func GenerateFromSchema(schema jsonschema.Schema, headerLevel int) (string, error) { + root := schema + return generateDoc(root, headerLevel) + +} + func Generate(schema []byte, headerLevel int) (string, error) { var root jsonschema.Schema if err := json.Unmarshal(schema, &root); err != nil { return "", err } - - buff := new(strings.Builder) - toc, err := generate(&root, headerLevel, buff) - return toc + "\n\n" + buff.String(), err + return generateDoc(root, headerLevel) } func generate(root *jsonschema.Schema, level int, buff *strings.Builder) (toc string, err error) { From a7d38b786f3bd04f1d2c32caef9d57a48ea8ca5e Mon Sep 17 00:00:00 2001 From: bbernays Date: Mon, 31 Mar 2025 13:27:23 -0500 Subject: [PATCH 2/3] Update docs_test.go --- jsonschema/docs/docs_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/jsonschema/docs/docs_test.go b/jsonschema/docs/docs_test.go index 5183f22..17f8c46 100644 --- a/jsonschema/docs/docs_test.go +++ b/jsonschema/docs/docs_test.go @@ -2,10 +2,12 @@ package docs import ( "embed" + "encoding/json" "strings" "testing" "github.com/bradleyjkemp/cupaloy/v2" + "github.com/invopop/jsonschema" "github.com/stretchr/testify/require" ) @@ -29,22 +31,45 @@ func genSnapshot(t *testing.T, fileName string) { cupaloy.New(cupaloy.SnapshotFileExtension(".md")).SnapshotT(t, normalizeContent(doc)) } +func genSnapshotStruct(t *testing.T, fileName string) { + data, err := schemaFS.ReadFile(fileName) + require.NoError(t, err) + + var root jsonschema.Schema + err = json.Unmarshal(data, &root) + + require.NoError(t, err) + + doc, err := GenerateFromSchema(root, 1) + require.NoError(t, err) + + cupaloy.New(cupaloy.SnapshotFileExtension(".md")).SnapshotT(t, normalizeContent(doc)) +} + func TestAWS(t *testing.T) { genSnapshot(t, "testdata/aws.json") + genSnapshotStruct(t, "testdata/aws.json") } func TestGCP(t *testing.T) { genSnapshot(t, "testdata/gcp.json") + genSnapshotStruct(t, "testdata/gcp.json") } func TestClickHouse(t *testing.T) { genSnapshot(t, "testdata/clickhouse.json") + genSnapshot(t, "testdata/clickhouse.json") + } func TestFiletypes(t *testing.T) { genSnapshot(t, "testdata/filetypes.json") + genSnapshot(t, "testdata/filetypes.json") + } func TestFileDestination(t *testing.T) { genSnapshot(t, "testdata/file-destination.json") + genSnapshot(t, "testdata/file-destination.json") + } From 0feed19ea90df6c1f738464b1a4baf6e92f5a2a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muraru=20=C8=98tefan?= Date: Tue, 1 Apr 2025 10:51:28 +0300 Subject: [PATCH 3/3] chore: lint --- jsonschema/docs/docs.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/jsonschema/docs/docs.go b/jsonschema/docs/docs.go index ffd8555..a93b351 100644 --- a/jsonschema/docs/docs.go +++ b/jsonschema/docs/docs.go @@ -18,9 +18,7 @@ func generateDoc(root jsonschema.Schema, headerLevel int) (string, error) { } func GenerateFromSchema(schema jsonschema.Schema, headerLevel int) (string, error) { - root := schema - return generateDoc(root, headerLevel) - + return generateDoc(schema, headerLevel) } func Generate(schema []byte, headerLevel int) (string, error) {