106 lines
4.3 KiB
Go
106 lines
4.3 KiB
Go
package artifacts
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestSessionWorkDirForCampaign(t *testing.T) {
|
|
root := "/tmp/workspace"
|
|
got := SessionWorkDirForCampaign(root, "forsaken", "2026-04-19")
|
|
want := filepath.Join(root, "work", "forsaken", "2026-04-19")
|
|
if got != want {
|
|
t.Fatalf("SessionWorkDirForCampaign() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSessionManifestPathForCampaign(t *testing.T) {
|
|
root := "/tmp/workspace"
|
|
got := SessionManifestPathForCampaign(root, "forsaken", "2026-04-19")
|
|
want := filepath.Join(root, "work", "forsaken", "2026-04-19", "manifest.json")
|
|
if got != want {
|
|
t.Fatalf("SessionManifestPathForCampaign() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSessionRunRootAndStageDirForCampaign(t *testing.T) {
|
|
root := "/tmp/workspace"
|
|
runID := "20260515T031522Z-a1b2c3d4"
|
|
runRoot := SessionRunRootForCampaign(root, "forsaken", "2026-04-19", runID)
|
|
wantRoot := filepath.Join(root, "work", "forsaken", "2026-04-19", "runs", runID)
|
|
if runRoot != wantRoot {
|
|
t.Fatalf("SessionRunRootForCampaign() = %q, want %q", runRoot, wantRoot)
|
|
}
|
|
|
|
stageDir := SessionRunStageDirForCampaign(root, "forsaken", "2026-04-19", runID, "transcribe")
|
|
wantStage := filepath.Join(root, "work", "forsaken", "2026-04-19", "runs", runID, "transcribe")
|
|
if stageDir != wantStage {
|
|
t.Fatalf("SessionRunStageDirForCampaign() = %q, want %q", stageDir, wantStage)
|
|
}
|
|
}
|
|
|
|
func TestSessionRunManifestPathForCampaign(t *testing.T) {
|
|
root := "/tmp/workspace"
|
|
runID := "20260515T031522Z-a1b2c3d4"
|
|
got := SessionRunManifestPathForCampaign(root, "forsaken", "2026-04-19", runID)
|
|
want := filepath.Join(root, "work", "forsaken", "2026-04-19", "runs", runID, "manifest.json")
|
|
if got != want {
|
|
t.Fatalf("SessionRunManifestPathForCampaign() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSessionPreviousPathsForCampaign(t *testing.T) {
|
|
root := "/tmp/workspace"
|
|
previousDir := SessionPreviousDirForCampaign(root, "forsaken", "2026-04-19")
|
|
wantPreviousDir := filepath.Join(root, "work", "forsaken", "2026-04-19", "previous")
|
|
if previousDir != wantPreviousDir {
|
|
t.Fatalf("SessionPreviousDirForCampaign() = %q, want %q", previousDir, wantPreviousDir)
|
|
}
|
|
|
|
manifestPath := SessionPreviousManifestPathForCampaign(root, "forsaken", "2026-04-19")
|
|
wantManifestPath := filepath.Join(root, "work", "forsaken", "2026-04-19", "previous", "manifest.json")
|
|
if manifestPath != wantManifestPath {
|
|
t.Fatalf("SessionPreviousManifestPathForCampaign() = %q, want %q", manifestPath, wantManifestPath)
|
|
}
|
|
|
|
artifactsDir := SessionPreviousArtifactsDirForCampaign(root, "forsaken", "2026-04-19")
|
|
wantArtifactsDir := filepath.Join(root, "work", "forsaken", "2026-04-19", "previous", "artifacts")
|
|
if artifactsDir != wantArtifactsDir {
|
|
t.Fatalf("SessionPreviousArtifactsDirForCampaign() = %q, want %q", artifactsDir, wantArtifactsDir)
|
|
}
|
|
|
|
artifactPath := SessionPreviousArtifactPathForCampaign(root, "forsaken", "2026-04-19", "session_recap.md")
|
|
wantArtifactPath := filepath.Join(root, "work", "forsaken", "2026-04-19", "previous", "artifacts", "session_recap.md")
|
|
if artifactPath != wantArtifactPath {
|
|
t.Fatalf("SessionPreviousArtifactPathForCampaign() = %q, want %q", artifactPath, wantArtifactPath)
|
|
}
|
|
}
|
|
|
|
func TestSessionPreviousPathsFromSessionPaths(t *testing.T) {
|
|
paths := buildSessionPaths("/tmp/workspace", "forsaken", "2026-04-19")
|
|
if got := SessionPreviousDir(paths); got != paths.PreviousDir {
|
|
t.Fatalf("SessionPreviousDir() = %q, want %q", got, paths.PreviousDir)
|
|
}
|
|
if got := SessionPreviousManifestPath(paths); got != paths.PreviousManifestPath {
|
|
t.Fatalf("SessionPreviousManifestPath() = %q, want %q", got, paths.PreviousManifestPath)
|
|
}
|
|
if got := SessionPreviousArtifactsDir(paths); got != paths.PreviousArtifactsDir {
|
|
t.Fatalf("SessionPreviousArtifactsDir() = %q, want %q", got, paths.PreviousArtifactsDir)
|
|
}
|
|
|
|
got := SessionPreviousArtifactPath(paths, "quest_log.json")
|
|
want := filepath.Join(paths.PreviousArtifactsDir, "quest_log.json")
|
|
if got != want {
|
|
t.Fatalf("SessionPreviousArtifactPath() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSessionSpoolAudioDir(t *testing.T) {
|
|
root := "/var/spool/narratio"
|
|
got := SessionSpoolAudioDir(root, "forsaken", "2026-04-19", "20260515T031522Z-a1b2c3d4")
|
|
want := filepath.Join(root, "forsaken", "2026-04-19", "20260515T031522Z-a1b2c3d4", "audio")
|
|
if got != want {
|
|
t.Fatalf("SessionSpoolAudioDir() = %q, want %q", got, want)
|
|
}
|
|
}
|