Files
web_huangguo_web/app/router/nav_tracking_template_test.go
T

69 lines
1.9 KiB
Go

package router
import (
"bytes"
"html/template"
"strings"
"testing"
)
func TestNavigationPageUsesDedicatedVerificationAndAnalytics(t *testing.T) {
navHTML := renderSEOCommonForTrackingTest(t, true)
for _, want := range []string{
"UEtS2h9mIjbFSM_VHEciNQ5iWuFPq9d-Q2WO0SFyPAw",
"eafd02fb6517fc76",
"112390883",
"G-SY26Y2MSHS",
} {
if !strings.Contains(navHTML, want) {
t.Fatalf("navigation SEO output does not contain %q", want)
}
}
for _, unwanted := range []string{"112967594", "G-B5KGM8S5J1", "6bb06ed5659790d0"} {
if strings.Contains(navHTML, unwanted) {
t.Fatalf("navigation SEO output unexpectedly contains main-site id %q", unwanted)
}
}
}
func TestMainSiteKeepsMainVerificationAndAnalytics(t *testing.T) {
mainHTML := renderSEOCommonForTrackingTest(t, false)
for _, want := range []string{
"r7geXn5kBugzOSLZzyw4v3NBDMQwAmzFCVkqp92odh0",
"6bb06ed5659790d0",
"112967594",
"G-B5KGM8S5J1",
} {
if !strings.Contains(mainHTML, want) {
t.Fatalf("main-site SEO output does not contain %q", want)
}
}
for _, unwanted := range []string{"112390883", "G-SY26Y2MSHS", "eafd02fb6517fc76"} {
if strings.Contains(mainHTML, unwanted) {
t.Fatalf("main-site SEO output unexpectedly contains navigation id %q", unwanted)
}
}
}
func renderSEOCommonForTrackingTest(t *testing.T, isNavPage bool) string {
t.Helper()
tpl, err := template.New("tracking-test").Funcs(template.FuncMap{
"jsonStr": func(any) template.JS { return template.JS(`""`) },
}).ParseFiles("../templates/base/seoCommon.html", "../templates/base/analytics.html")
if err != nil {
t.Fatal(err)
}
data := map[string]any{
"isNavPage": isNavPage,
"seoVerify": map[string]any{"Baidu": ""},
"appConfig": map[string]any{
"SeoInfo": map[string]any{"WebSiteName": ""},
},
}
var out bytes.Buffer
if err := tpl.ExecuteTemplate(&out, "seoCommon", data); err != nil {
t.Fatal(err)
}
return out.String()
}