59 lines
1.8 KiB
Go
59 lines
1.8 KiB
Go
package artifacts
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestResolveSessionLocalPathForRead(t *testing.T) {
|
|
workspace := t.TempDir()
|
|
paths := buildSessionPaths(workspace, "sample-campaign", "s-1")
|
|
if err := os.MkdirAll(paths.TranscriptsRawDir, 0o755); err != nil {
|
|
t.Fatalf("MkdirAll() error = %v", err)
|
|
}
|
|
target := filepath.Join(paths.TranscriptsRawDir, "alice.json")
|
|
if err := os.WriteFile(target, []byte(`{"segments":[]}`), 0o644); err != nil {
|
|
t.Fatalf("WriteFile() error = %v", err)
|
|
}
|
|
|
|
abs := target
|
|
got := ResolveSessionLocalPathForRead(paths, abs)
|
|
if got != abs {
|
|
t.Fatalf("absolute path resolution = %q, want %q", got, abs)
|
|
}
|
|
|
|
sessionRelative := filepath.Join("transcripts", "raw", "alice.json")
|
|
got = ResolveSessionLocalPathForRead(paths, sessionRelative)
|
|
if got != target {
|
|
t.Fatalf("session-relative resolution = %q, want %q", got, target)
|
|
}
|
|
}
|
|
|
|
func TestResolveSessionLocalPathForReadRelativeWorkspaceRootQualifiedPath(t *testing.T) {
|
|
cwd, err := os.Getwd()
|
|
if err != nil {
|
|
t.Fatalf("Getwd() error = %v", err)
|
|
}
|
|
workspaceAbs := t.TempDir()
|
|
workspaceRel, err := filepath.Rel(cwd, workspaceAbs)
|
|
if err != nil {
|
|
t.Fatalf("Rel() error = %v", err)
|
|
}
|
|
|
|
paths := buildSessionPaths(workspaceRel, "sample-campaign", "s-1")
|
|
target := filepath.Join(paths.TranscriptsRawDir, "alice.json")
|
|
if err := os.MkdirAll(filepath.Dir(target), 0o755); err != nil {
|
|
t.Fatalf("MkdirAll() error = %v", err)
|
|
}
|
|
if err := os.WriteFile(target, []byte(`{"segments":[]}`), 0o644); err != nil {
|
|
t.Fatalf("WriteFile() error = %v", err)
|
|
}
|
|
|
|
manifestPath := filepath.Join(workspaceRel, "work", "sample-campaign", "s-1", "transcripts", "raw", "alice.json")
|
|
got := ResolveSessionLocalPathForRead(paths, manifestPath)
|
|
if got != filepath.Clean(manifestPath) {
|
|
t.Fatalf("resolution = %q, want %q", got, filepath.Clean(manifestPath))
|
|
}
|
|
}
|