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)
|
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