Files
Agent-System/internal/server/pi_agent_datadir_test.go
T
WeiCHEN 63f8cfebe7 fix(test): pin real-PI DATA_DIR to runner-mounted data/dev
go test under internal/server previously preferred package-local
data/test, so materials never reached the pi-agent bind mount and
intake quality gates failed closed on empty sandboxes.
2026-09-22 19:40:28 +08:00

55 lines
1.6 KiB
Go

package server_test
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestResolvePiAgentSharedDataDir_PrefersRepoRootDevOverPackageLocal(t *testing.T) {
root := t.TempDir()
mustMkdirAll(t, filepath.Join(root, "data", "dev", "workspaces"))
mustWrite(t, filepath.Join(root, "go.mod"), "module example\n")
pkgLocal := filepath.Join(root, "internal", "server", "data", "test", "workspaces")
mustMkdirAll(t, pkgLocal)
cwd := filepath.Join(root, "internal", "server")
got := resolvePiAgentSharedDataDir(cwd, "")
want := filepath.Join(root, "data", "dev")
if got != want {
t.Fatalf("got %q want repo-root %q (must not pick package-local %q)", got, want, filepath.Join(root, "internal", "server", "data", "test"))
}
if strings.Contains(filepath.ToSlash(got), "/internal/") {
t.Fatalf("resolved path must not be under internal/: %q", got)
}
}
func TestResolvePiAgentSharedDataDir_EnvOverrides(t *testing.T) {
root := t.TempDir()
mustMkdirAll(t, filepath.Join(root, "data", "dev", "workspaces"))
mustWrite(t, filepath.Join(root, "go.mod"), "module example\n")
override := filepath.Join(root, "custom-data")
mustMkdirAll(t, filepath.Join(override, "workspaces"))
got := resolvePiAgentSharedDataDir(filepath.Join(root, "internal", "server"), override)
if got != override {
t.Fatalf("got %q want env override %q", got, override)
}
}
func mustMkdirAll(t *testing.T, path string) {
t.Helper()
if err := os.MkdirAll(path, 0o755); err != nil {
t.Fatalf("mkdir %s: %v", path, err)
}
}
func mustWrite(t *testing.T, path, body string) {
t.Helper()
if err := os.WriteFile(path, []byte(body), 0o644); err != nil {
t.Fatalf("write %s: %v", path, err)
}
}