Check / check (pull_request) Successful in 3m19s
The compose file builds the image from this repo, mounts the Docker socket and HOST_DATA_DIR (passed to upaas as UPAAS_HOST_DATA_DIR), reads settings from .env, and restarts unless stopped. The port is published on 127.0.0.1 only, for a TLS-terminating proxy in front. PORT and UPAAS_DATA_DIR are pinned so .env cannot move upaas off the port mapping, the healthcheck (busybox wget) or the data mount. upaas now refuses to start when UPAAS_HOST_DATA_DIR is set to a relative path; when unset it still falls back to the data directory. The README's plain-HTTP Compose example becomes a short deploy section that points at the file. .env is added to .dockerignore. Model: opus-5-5
34 lines
839 B
Go
34 lines
839 B
Go
package config //nolint:testpackage // tests unexported buildConfig
|
|
|
|
import (
|
|
"errors"
|
|
"log/slog"
|
|
"testing"
|
|
)
|
|
|
|
func TestBuildConfigRejectsRelativeHostDataDir(t *testing.T) {
|
|
t.Setenv("UPAAS_HOST_DATA_DIR", "./data")
|
|
setupViper("upaas")
|
|
|
|
_, err := buildConfig(slog.Default(), &Params{})
|
|
if !errors.Is(err, errHostDataDirNotAbsolute) {
|
|
t.Fatalf("expected errHostDataDirNotAbsolute, got %v", err)
|
|
}
|
|
}
|
|
|
|
func TestBuildConfigHostDataDirDefaultsToDataDir(t *testing.T) {
|
|
t.Setenv("UPAAS_DATA_DIR", "./data")
|
|
t.Setenv("UPAAS_HOST_DATA_DIR", "")
|
|
t.Setenv("UPAAS_SESSION_SECRET", "test-secret")
|
|
setupViper("upaas")
|
|
|
|
cfg, err := buildConfig(slog.Default(), &Params{})
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
|
|
if cfg.HostDataDir != "./data" {
|
|
t.Errorf("expected HostDataDir ./data, got %q", cfg.HostDataDir)
|
|
}
|
|
}
|