diff options
| author | Jonathan Amsterdam <jba@google.com> | 2026-03-27 15:18:20 -0400 |
|---|---|---|
| committer | Jonathan Amsterdam <jba@google.com> | 2026-04-06 07:29:20 -0700 |
| commit | f7258b211d2eab96a43600ece95d591f3973ae69 (patch) | |
| tree | 97f1c8d21108973533054f33a01f17e8d5d26269 /internal/api/render_test.go | |
| parent | 2d0d60d0e456af02dfc52d79053d5a3a20fb11ff (diff) | |
| download | go-x-pkgsite-f7258b211d2eab96a43600ece95d591f3973ae69.tar.xz | |
internal/api: add support for examples
renderDoc now includes examples.
It has an option to omit examples, if we decide to omit them
in order to reduce the context load.
Change-Id: Ieaa411fe09b439f51aac7d49195cd5791a20d0d8
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/761000
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Ethan Lee <ethanalee@google.com>
TryBot-Bypass: Jonathan Amsterdam <jba@google.com>
Diffstat (limited to 'internal/api/render_test.go')
| -rw-r--r-- | internal/api/render_test.go | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/internal/api/render_test.go b/internal/api/render_test.go index 14e06d6d..fdfb8612 100644 --- a/internal/api/render_test.go +++ b/internal/api/render_test.go @@ -6,6 +6,7 @@ package api import ( "context" + "fmt" "go/parser" "go/token" "os" @@ -18,17 +19,24 @@ import ( ) func TestRenderDoc(t *testing.T) { - src, err := os.ReadFile("testdata/pkg.go") - if err != nil { - t.Fatal(err) - } + t.Run("examples", func(t *testing.T) { + testRenderDoc(t, true) + }) + t.Run("no examples", func(t *testing.T) { + testRenderDoc(t, false) + }) +} + +func testRenderDoc(t *testing.T, examples bool) { fset := token.NewFileSet() - pf, err := parser.ParseFile(fset, "p.go", src, parser.ParseComments) - if err != nil { - t.Fatal(err) - } docPkg := godoc.NewPackage(fset, nil) - docPkg.AddFile(pf, true) + for _, file := range []string{"pkg.go", "pkg_test.go"} { + pf, err := parser.ParseFile(fset, filepath.Join("testdata", file), nil, parser.ParseComments) + if err != nil { + t.Fatal(err) + } + docPkg.AddFile(pf, true) + } gpkg, err := docPkg.Encode(context.Background()) if err != nil { t.Fatal(err) @@ -48,17 +56,23 @@ func TestRenderDoc(t *testing.T) { check := func(t *testing.T, name string, r renderer) { sb.Reset() t.Run(name, func(t *testing.T) { - if err := renderDoc(dpkg, r); err != nil { + if err := renderDoc(dpkg, r, examples); err != nil { t.Fatal(err) } got := strings.TrimSpace(sb.String()) - wantBytes, err := os.ReadFile(filepath.FromSlash("testdata/" + name + ".golden")) + goldenName := name + if examples { + goldenName += "-examples" + } + goldenFile := filepath.Join("testdata", goldenName+".golden") + wantBytes, err := os.ReadFile(goldenFile) if err != nil { t.Fatal(err) } want := strings.TrimSpace(string(wantBytes)) if diff := cmp.Diff(want, got); diff != "" { t.Errorf("mismatch (-want +got):\n%s", diff) + fmt.Println(got) } }) } |
