Added a new JSON public schema as the default output artifact

This commit is contained in:
2026-04-28 21:32:43 -05:00
parent 80ac7e97dd
commit cc80a123ef
14 changed files with 533 additions and 12 deletions

View File

@@ -30,6 +30,57 @@ func TestSelectedFromMergedDefaultsToSeriatimTranscript(t *testing.T) {
}
}
func TestSelectedFromMergedUsesDefaultWhenConfigured(t *testing.T) {
got := SelectedFromMerged(config.Config{OutputSchema: config.OutputSchemaDefault}, model.MergedTranscript{})
if _, ok := got.(schema.DefaultTranscript); !ok {
t.Fatalf("selected artifact type = %T, want schema.DefaultTranscript", got)
}
}
func TestSelectedFromMergedUsesSeriatimWhenConfigured(t *testing.T) {
got := SelectedFromMerged(config.Config{OutputSchema: config.OutputSchemaSeriatim}, model.MergedTranscript{})
if _, ok := got.(schema.Transcript); !ok {
t.Fatalf("selected artifact type = %T, want schema.Transcript", got)
}
}
func TestDefaultFromMergedEmitsOnlyDefaultShape(t *testing.T) {
merged := model.MergedTranscript{
Segments: []model.Segment{
{
ID: 1,
Source: "input.json",
SourceRef: "word-run:1:1:1",
DerivedFrom: []string{"input.json#0"},
Speaker: "Alice",
Start: 1,
End: 2,
Text: "hello",
Categories: []string{"backchannel"},
OverlapGroupID: 1,
},
},
OverlapGroups: []model.OverlapGroup{
{ID: 1, Start: 1, End: 2, Segments: []string{"input.json#0"}, Speakers: []string{"Alice"}, Class: "unknown", Resolution: "unresolved"},
},
}
got := DefaultFromMerged(config.Config{OutputSchema: config.OutputSchemaDefault}, merged)
want := schema.DefaultTranscript{
Metadata: schema.DefaultMetadata{
Application: ApplicationName,
Version: buildinfo.Version,
OutputSchema: config.OutputSchemaDefault,
},
Segments: []schema.DefaultSegment{
{ID: 1, Start: 1, End: 2, Speaker: "Alice", Text: "hello", Categories: []string{"backchannel"}},
},
}
if !reflect.DeepEqual(got, want) {
t.Fatalf("default transcript = %#v, want %#v", got, want)
}
}
func TestMinimalFromMergedEmitsOnlyMinimalShape(t *testing.T) {
merged := model.MergedTranscript{
Segments: []model.Segment{