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) } }