From 3721a51da3ab67a171066ee31679e9bf43d802b7 Mon Sep 17 00:00:00 2001 From: luoliwoshang <2643523683@qq.com> Date: Fri, 10 May 2024 17:11:38 +0800 Subject: [PATCH] test:update godoc.Render --- internal/godoc/render_gop_test.go | 40 +++++++++++++++++++++++++ internal/godoc/testdata/gop/overload.go | 20 +++++++++++++ internal/gopdoc/z_test.go | 4 ++- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 internal/godoc/render_gop_test.go create mode 100644 internal/godoc/testdata/gop/overload.go diff --git a/internal/godoc/render_gop_test.go b/internal/godoc/render_gop_test.go new file mode 100644 index 000000000..d7158b604 --- /dev/null +++ b/internal/godoc/render_gop_test.go @@ -0,0 +1,40 @@ +package godoc + +import ( + "context" + "path/filepath" + "strings" + "testing" + + "golang.org/x/net/html" + "golang.org/x/pkgsite/internal" + "golang.org/x/pkgsite/internal/godoc/dochtml" + "golang.org/x/pkgsite/internal/source" +) + +func TestGopRender(t *testing.T) { + dochtml.LoadTemplates(templateFS) + ctx := context.Background() + p, err := packageForDir(filepath.Join("testdata", "gop"), false) + if err != nil { + t.Fatal(err) + } + parts, err := p.Render(ctx, "", &source.Info{}, &dochtml.ModuleInfo{}, nil, internal.BuildContext{}) + if err != nil { + t.Fatal(err) + } + htmlDoc, err := html.Parse(strings.NewReader(parts.Body.String())) + if err != nil { + t.Fatal(err) + } + wantFuncAnchor := []string{"Mul", "Mul__1", "Mul__2", "MulFloat", "MulInt"} + for _, anchor := range wantFuncAnchor { + t.Run(anchor, func(t *testing.T) { + checker := in("h4.Documentation-functionHeader#" + anchor) + if err := checker(htmlDoc); err != nil { + t.Fatal(err) + } + }) + } + // TODO: check overload method (htmlcheck.Checker cant select id like "foo.Division") +} diff --git a/internal/godoc/testdata/gop/overload.go b/internal/godoc/testdata/gop/overload.go new file mode 100644 index 000000000..870338e7b --- /dev/null +++ b/internal/godoc/testdata/gop/overload.go @@ -0,0 +1,20 @@ +package foo + +const GopPackage = true + +const Gopo_Mul = "MulInt,,MulFloat" + +// Mut int +func MulInt(a int, b int) int { + return a * b +} + +// Mut string +func Mul__1(a string, b string) string { + return a + b +} + +// Mut float +func MulFloat(a float64, b float64) float64 { + return a * b +} diff --git a/internal/gopdoc/z_test.go b/internal/gopdoc/z_test.go index c3ca0b3c0..353a822b2 100644 --- a/internal/gopdoc/z_test.go +++ b/internal/gopdoc/z_test.go @@ -53,8 +53,10 @@ func TestIsGopPackage(t *testing.T) { if isGopPackage(&doc.Package{}) { t.Fatal("isGopPackage: true?") } + if _, gopInfo := Transform(&doc.Package{}); gopInfo != nil { + t.Fatal("go package should not get gopInfo after transform") + } } - func TestDocRecv(t *testing.T) { if _, ok := docRecv(&ast.Field{}); ok { t.Fatal("docRecv: ok?")