test(gateway): root 去重断言改为按 server 段计数

上一版断言用全局计数,而默认段与门户段各有一个 root(合法),因此必然失败;
真正要防的是同一段内重复。改为取门户段后再计数。
This commit is contained in:
HomeDash Bot
2026-09-12 09:20:35 +08:00
parent b4241741d6
commit cb86557466

View File

@ -374,13 +374,18 @@ func TestPortalKindUsesRenderer(t *testing.T) {
}
}
// nginx 不允许同一 server 段内重复的 root 指令(实测报 emerg)。
// nginx 不允许**同一个 server 段**内出现重复的 root 指令(实测 emerg)。
// 注意:不同 server 段各有一个 root 是正常的,所以必须按段计数。
func TestPortalKindNoDuplicateRoot(t *testing.T) {
out, err := RenderGatewayConf(&GatewayConfig{ListenPort: 8081, Routes: []Route{{Host: "p.com", Kind: "portal"}}})
if err != nil {
t.Fatalf("渲染失败: %v", err)
}
if strings.Count(out, "root /app/portal;") != 1 {
t.Fatalf("root 指令重复(应恰好 1 次):\n%s", out)
block := section(out, "server_name p.com;")
if block == "" {
t.Fatalf("未找到门户段:\n%s", out)
}
if n := strings.Count(block, "root "); n != 1 {
t.Fatalf("门户段内 root 指令应恰好 1 次,实际 %d 次:\n%s", n, block)
}
}