a3ed63ee9a
gates / gates (push) Successful in 50s
Found live on 9202 (grimmory import timed out on the DB step and left the app down). Red-proved.
41 lines
2.2 KiB
Go
41 lines
2.2 KiB
Go
package appexport
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gitea.dooplex.hu/admin/felhom-controller/internal/appbackup"
|
|
)
|
|
|
|
// R-1187, found live on 9202 2026-10-26 night (grimmory): the import ran `compose` WITHOUT the two path variables the
|
|
// controller adds at every install and start (USERDATA_PATH, IMPORT_PATH — stacks.policyEnv). Compose then printed
|
|
// „The USERDATA_PATH variable is not set" on its combined output, the DB step read that WARNING as the container id,
|
|
// waited 60 s for a container that does not exist, and left the app removed and not started. Both halves pinned here.
|
|
// RED-PROOF: with the old helpers (the first output line; the env unchanged) both tests fail.
|
|
func TestR1187_TheContainerIDIsNeverAComposeWarning(t *testing.T) {
|
|
out := []byte("time=\"2026-10-26T20:18:06Z\" level=warning msg=\"The \\\"USERDATA_PATH\\\" variable is not set. Defaulting to a blank string.\"\n" +
|
|
"1047c698c778ab12cd34ef56ab78cd90ef12ab34cd56ef78ab90cd12ef34ab56\n")
|
|
if got := containerIDFrom(out); got != "1047c698c778ab12cd34ef56ab78cd90ef12ab34cd56ef78ab90cd12ef34ab56" {
|
|
t.Fatalf("container id = %q", got)
|
|
}
|
|
if got := containerIDFrom([]byte("time=x level=warning msg=y\n")); got != "" {
|
|
t.Fatalf("a warning alone must give no id, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestR1187_TheImportEnvCarriesTheControllersPathVars(t *testing.T) {
|
|
env := map[string]string{"HDD_PATH": "/mnt/felhom-drives/d", "USERDATA_PATH": "/mnt/felhom-drives/d/appdata/other", "X": "1"}
|
|
got := withImportPathVars(env, "/mnt/felhom-drives/d", "/mnt/sys_drive/felhom-data/userdata/import")
|
|
if got["USERDATA_PATH"] != appbackup.UserdataDir("/mnt/felhom-drives/d") {
|
|
t.Fatalf("USERDATA_PATH = %q — must be the controller's own derivation, never the bundle's", got["USERDATA_PATH"])
|
|
}
|
|
if got["IMPORT_PATH"] != "/mnt/sys_drive/felhom-data/userdata/import" || got["X"] != "1" || got["HDD_PATH"] != "/mnt/felhom-drives/d" {
|
|
t.Fatalf("env = %v", got)
|
|
}
|
|
if env["USERDATA_PATH"] != "/mnt/felhom-drives/d/appdata/other" {
|
|
t.Fatal("the caller's map was changed")
|
|
}
|
|
if g := withImportPathVars(map[string]string{"IMPORT_PATH": "/x"}, "", ""); g["USERDATA_PATH"] != "" || g["IMPORT_PATH"] != "" {
|
|
t.Fatalf("no namespace / no import root must leave neither variable: %v", g)
|
|
}
|
|
}
|