Add deterministic Markdown render coverage for renderer behavior
This commit is contained in:
@@ -138,3 +138,41 @@ func TestMarkdownRendererCategoryHintItalicsAndUnknownCategories(t *testing.T) {
|
||||
t.Fatalf("expected unknown category to be ignored:\n%s", output)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMarkdownRendererIsDeterministic(t *testing.T) {
|
||||
transcript := Transcript{
|
||||
Schema: "seriatim-intermediate",
|
||||
Metadata: Metadata{
|
||||
Application: "seriatim",
|
||||
Version: "v-test",
|
||||
},
|
||||
Segments: []Segment{
|
||||
{ID: 1, Start: 1.2, End: 4.4, Speaker: "Eric", Text: "Hello there.", Categories: []string{"unknown-tag"}},
|
||||
{ID: 2, Start: 65.1, End: 68.8, Speaker: "Mike", Text: "Yeah.", Categories: []string{"backchannel"}},
|
||||
},
|
||||
}
|
||||
opts := Options{
|
||||
Title: "Transcript",
|
||||
IncludeTimestamps: true,
|
||||
IncludeSegmentIDs: true,
|
||||
IncludeMetadata: true,
|
||||
}
|
||||
|
||||
first, err := MarkdownRenderer{}.Render(transcript, opts)
|
||||
if err != nil {
|
||||
t.Fatalf("first render failed: %v", err)
|
||||
}
|
||||
second, err := MarkdownRenderer{}.Render(transcript, opts)
|
||||
if err != nil {
|
||||
t.Fatalf("second render failed: %v", err)
|
||||
}
|
||||
if first != second {
|
||||
t.Fatalf("render output is not deterministic:\nfirst:\n%s\nsecond:\n%s", first, second)
|
||||
}
|
||||
if !strings.Contains(first, "[00:00:01–00:00:04] [#1] **Eric:** Hello there.") {
|
||||
t.Fatalf("expected HH:MM:SS timestamp formatting:\n%s", first)
|
||||
}
|
||||
if !strings.Contains(first, "[00:01:05–00:01:09] [#2] **Mike:** *Yeah.*") {
|
||||
t.Fatalf("expected HH:MM:SS timestamp formatting:\n%s", first)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user