fix: restore reviewable migration evidence

This commit is contained in:
MiMoCode
2026-07-10 18:26:48 +08:00
commit d1bbb5370c
42 changed files with 6419 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
package deployment_test
import (
"os"
"path/filepath"
"regexp"
"strings"
"testing"
)
func TestComposeUsesSafeDeploymentDefaults(t *testing.T) {
root := filepath.Join("..", "..")
compose := readFile(t, filepath.Join(root, "compose.yml"))
envExample := readFile(t, filepath.Join(root, ".env.example"))
for _, required := range []string{
`${UPSTREAM_URL:?set UPSTREAM_URL}`,
`${CLICKHOUSE_URL:?set CLICKHOUSE_URL with URL-encoded credentials}`,
`${CLICKHOUSE_PASSWORD:?set a strong CLICKHOUSE_PASSWORD}`,
} {
if !strings.Contains(compose, required) {
t.Errorf("compose.yml must reject an empty required setting with %q", required)
}
}
if !regexp.MustCompile(`(?m)^\s+image: clickhouse/clickhouse-server:\d+\.\d+\.\d+\.\d+-alpine\s*$`).MatchString(compose) {
t.Error("ClickHouse image must use an exact version tag")
}
serviceStart := strings.LastIndex(compose, " thief_clickhouse:")
if serviceStart < 0 {
t.Fatal("compose.yml is missing the thief_clickhouse service")
}
clickhouseService := compose[serviceStart:]
if strings.Contains(clickhouseService, "\n ports:") {
t.Error("ClickHouse must not publish host ports by default")
}
for _, emptySecret := range []string{"CLICKHOUSE_URL=\n", "CLICKHOUSE_PASSWORD=\n"} {
if !strings.Contains(envExample, emptySecret) {
t.Errorf(".env.example must leave %q empty", strings.TrimSpace(emptySecret))
}
}
}
func TestReviewDocumentsUseStablePaths(t *testing.T) {
root := filepath.Join("..", "..")
for _, path := range []string{
filepath.Join(root, "docs", "compose", "specs", "reliability-security-fixes.md"),
filepath.Join(root, "docs", "compose", "plans", "reliability-security-fixes.md"),
} {
content := readFile(t, path)
if !strings.Contains(content, "2026-07-09-clickhouse-migration.md") {
t.Errorf("%s must link to the dated source document", path)
}
}
}
func readFile(t *testing.T, path string) string {
t.Helper()
b, err := os.ReadFile(path)
if err != nil {
t.Fatal(err)
}
return string(b)
}