package main import ( "os" "testing" ) // TestMain 统一设置测试期的安全开关。 // // 背景:2026-10-22 的渗透测试后,管理 API 改成「默认拒绝」, // /api/frameable 也默认拒绝探测回环地址。这两条都是给线上用的正确默认值, // 但会让测试(在 127.0.0.1 的 httptest 服务器上跑、且不带头部的请求)全部 401。 // // 因此测试进程显式打开这两个仅用于本地调试的开关: // - NAVI_ADMIN_ALLOW_UNAUTHENTICATED=1:无 token 时放行,便于直接测 handler // - NAVI_ALLOW_LOOPBACK_FRAMEABLE=1:允许探测 127.0.0.1 的 httptest 服务器 // // 注意这里同时把 NAVI_ADMIN_TOKEN 清空,确保测的是「无 token」这条路径; // 生产部署必须配置真实 token,绝不设这两个开关。 func TestMain(m *testing.M) { _ = os.Unsetenv("NAVI_ADMIN_TOKEN") _ = os.Unsetenv("NAVI_ADMIN_REQUIRE_TOKEN") _ = os.Setenv("NAVI_ADMIN_ALLOW_UNAUTHENTICATED", "1") _ = os.Setenv("NAVI_ALLOW_LOOPBACK_FRAMEABLE", "1") // 变量在包初始化时已从环境读取,这里同步覆盖一次,确保生效。 adminToken = "" requireTokenForWrite = false allowUnauthenticated = true allowLoopbackFrameable = true os.Exit(m.Run()) }