56 lines
2.0 KiB
Go
56 lines
2.0 KiB
Go
package artifacts
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestS3KeyConstruction(t *testing.T) {
|
|
runID := "20260515T031522Z-a1b2c3d4"
|
|
sessionPrefix := S3SessionPrefix("dnd", "forsaken", "2026-04-19")
|
|
if sessionPrefix != "dnd/campaigns/forsaken/sessions/2026-04-19/" {
|
|
t.Fatalf("sessionPrefix = %q", sessionPrefix)
|
|
}
|
|
|
|
audioPrefix := S3AudioPrefix(sessionPrefix, "audio/")
|
|
if audioPrefix != "dnd/campaigns/forsaken/sessions/2026-04-19/audio/" {
|
|
t.Fatalf("audioPrefix = %q", audioPrefix)
|
|
}
|
|
|
|
sessionConfigKey := S3SessionConfigKey(`dnd\campaigns\forsaken\sessions\2026-04-19\`)
|
|
if sessionConfigKey != "dnd/campaigns/forsaken/sessions/2026-04-19/session.yml" {
|
|
t.Fatalf("session config key = %q", sessionConfigKey)
|
|
}
|
|
|
|
locksKey := S3SessionLocksKey(`dnd\campaigns\forsaken\sessions\2026-04-19\`)
|
|
if locksKey != "dnd/campaigns/forsaken/sessions/2026-04-19/locks.yml" {
|
|
t.Fatalf("locks key = %q", locksKey)
|
|
}
|
|
|
|
runPrefix := S3RunPrefix(sessionPrefix, runID)
|
|
wantRunPrefix := "dnd/campaigns/forsaken/sessions/2026-04-19/runs/" + runID + "/"
|
|
if runPrefix != wantRunPrefix {
|
|
t.Fatalf("runPrefix = %q, want %q", runPrefix, wantRunPrefix)
|
|
}
|
|
|
|
runPointer := S3CurrentRunPointerKey(sessionPrefix)
|
|
if runPointer != "dnd/campaigns/forsaken/sessions/2026-04-19/current/run_id.txt" {
|
|
t.Fatalf("run pointer key = %q", runPointer)
|
|
}
|
|
|
|
manifestKey := S3CurrentManifestKey(sessionPrefix)
|
|
if manifestKey != "dnd/campaigns/forsaken/sessions/2026-04-19/current/manifest.json" {
|
|
t.Fatalf("manifest key = %q", manifestKey)
|
|
}
|
|
|
|
publishedKey := S3PublishedOutputKey(sessionPrefix, "transcripts/final.trimmed.json")
|
|
if publishedKey != "dnd/campaigns/forsaken/sessions/2026-04-19/transcripts/final.trimmed.json" {
|
|
t.Fatalf("published key = %q", publishedKey)
|
|
}
|
|
|
|
runRelative := S3RunRelativeDestinationKey(runPrefix, `logs\whisperx.stdout.log`)
|
|
if !strings.HasSuffix(runRelative, "/logs/whisperx.stdout.log") {
|
|
t.Fatalf("runRelative key = %q, want normalized forward slashes", runRelative)
|
|
}
|
|
}
|