package artifacts import ( "path/filepath" "testing" ) func TestSessionRunWorkDir(t *testing.T) { root := "/tmp/workspace" got := SessionRunWorkDir(root, "forsaken", "2026-04-19", "20260515T031522Z-a1b2c3d4") want := filepath.Join(root, "work", "forsaken", "2026-04-19", "20260515T031522Z-a1b2c3d4") if got != want { t.Fatalf("SessionRunWorkDir() = %q, want %q", got, want) } } 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 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) } }