package main import ( "os" "path/filepath" "strings" "testing" ) func writeFixture(t *testing.T, root, rel, content string) { t.Helper() p := filepath.Join(root, filepath.FromSlash(rel)) if err := os.MkdirAll(filepath.Dir(p), 0o755); err != nil { t.Fatal(err) } if err := os.WriteFile(p, []byte(content), 0o644); err != nil { t.Fatal(err) } } func TestBuildFixture(t *testing.T) { root := t.TempDir() writeFixture(t, root, "docs/components/001-oauth-buttons.md", "# 001 OAuthButtons 第三方登录按钮\n\n## 参数\n\n"+ "| 字段 | 类型 |\n| --- | --- |\n| `Value` | `*T` |\n| `Pipe` | `a \\| b` |\n\n"+ "- 一项,见 [兼容](../compat.md)\n- 二项\n\n```go\nx := a < b\n```\n") writeFixture(t, root, "examples/gallery/pages_fixture.go", "package main\n\nconst fixCategory = \"Fixtures\"\n\n"+ "var fixPages = []page{\n\t{ID: \"001\", Name: \"OAuthButtons\", ZhName: \"第三方登录按钮\", Category: fixCategory, Code: fixCode[\"x\"]},\n}\n") writeFixture(t, root, "pkg/auth/testdata/snapshots/darwin/oauth_buttons-light.png", "png") writeFixture(t, root, "pkg/auth/testdata/snapshots/darwin/oauth_buttons-dark.png", "png") writeFixture(t, root, "README.md", "# MujicaUI\n\n见 [兼容](docs/compat.md)。\n") writeFixture(t, root, "docs/compat.md", "# 兼容\n") writeFixture(t, root, "docs/upstream.md", "# 上游\n") writeFixture(t, root, "site/style.css", "body{}") writeFixture(t, root, "site/app.js", "") out := filepath.Join(root, "site", "dist") n, err := build(root, out) if err != nil { t.Fatal(err) } if n != 1 { t.Fatalf("pages = %d, want 1", n) } raw, err := os.ReadFile(filepath.Join(out, "c", "001-oauth-buttons", "index.html")) if err != nil { t.Fatal(err) } page := string(raw) for _, want := range []string{ "
Value*Ta | bx := a < b`,
`class="copy"`,
`