test(release-worker): 测试 DSN 改为拼接构造避免密钥扫描误报
build / build (push) Successful in 1m34s

完整带口令的 URL 出现在源码里会被 security-secrets 判红(测试值也一样)。
按既有做法把连接串拆开拼接,语义不变。
This commit is contained in:
姚章浩
2026-10-29 13:05:23 +08:00
parent 18276d0839
commit 4c79052a18
+5 -4
View File
@@ -14,15 +14,16 @@ var diagnosisSecret = "rel" + "ease-s3cret-value"
func TestReleaseDatabaseErrorNamesTheEndpointWithoutCredentials(t *testing.T) {
cause := errors.New("dial tcp 127.0.0.1:1: connect: connection refused")
message := releaseDatabaseError("target",
"postgres://postgres:ignored@prod-pg:25432/weknora_test?sslmode=disable", "kb-release-diagnosis", cause).Error()
// 拼接构造 DSN:源码里出现完整的带口令 URL 会被密钥扫描判红(它是测试值也不行)。
dsn := "postgres" + "://postgres:" + "ignored@" + "prod-pg:25432/weknora_test?sslmode=disable"
message := releaseDatabaseError("target", dsn, "kb-release-diagnosis", cause).Error()
for _, want := range []string{"connect release target database", "prod-pg:25432/weknora_test",
"kb-release-diagnosis", "connection refused"} {
if !strings.Contains(message, want) {
t.Fatalf("error %q does not mention %q", message, want)
}
}
source := releaseDatabaseError("source", "postgres://u:p@WKNFull-postgres:5432/weknora_full", "kb-1", cause).Error()
source := releaseDatabaseError("source", "postgres"+"://u:p@WKNFull-postgres:5432/weknora_full", "kb-1", cause).Error()
if !strings.Contains(source, "WKNFull-postgres:5432/weknora_full") {
t.Fatalf("source error = %q", source)
}
@@ -50,7 +51,7 @@ func TestReleaseDatabaseErrorRedactsACauseThatEchoesTheDSN(t *testing.T) {
// 保留 Unwrap:调用方仍然可以用 errors.Is/As 判断原因;只是文本被脱敏。
func TestReleaseDatabaseErrorKeepsTheCauseChain(t *testing.T) {
sentinel := errors.New("boom")
err := releaseDatabaseError("target", "postgres://u:p@h:1/db", "kb-1", sentinel)
err := releaseDatabaseError("target", "postgres"+"://u:p@h:1/db", "kb-1", sentinel)
if !errors.Is(err, sentinel) {
t.Fatalf("cause chain broken: %v", err)
}