package artifacts import ( "bytes" "regexp" "strings" "testing" "time" ) func TestNewRunIDWithFormat(t *testing.T) { now := time.Date(2026, 5, 15, 3, 15, 22, 0, time.UTC) random := bytes.NewReader([]byte{0xa1, 0xb2, 0xc3, 0xd4}) runID, err := NewRunIDWith(now, random) if err != nil { t.Fatalf("NewRunIDWith() error = %v", err) } if runID != "20260515T031522Z-a1b2c3d4" { t.Fatalf("runID = %q, want %q", runID, "20260515T031522Z-a1b2c3d4") } } func TestNewRunIDWithShape(t *testing.T) { runID, err := NewRunIDWith(time.Now().UTC(), bytes.NewReader([]byte{0x01, 0x02, 0x03, 0x04})) if err != nil { t.Fatalf("NewRunIDWith() error = %v", err) } pattern := regexp.MustCompile(`^\d{8}T\d{6}Z-[0-9a-f]{8}$`) if !pattern.MatchString(runID) { t.Fatalf("runID = %q, want pattern %q", runID, pattern.String()) } suffix := runID[len(runID)-8:] if strings.ToLower(suffix) != suffix { t.Fatalf("runID suffix = %q, want lowercase", suffix) } }