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.
55 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|