diff --git a/admin-server/gateway_test.go b/admin-server/gateway_test.go index e41e5b6..612a746 100644 --- a/admin-server/gateway_test.go +++ b/admin-server/gateway_test.go @@ -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) } }