33 lines
1011 B
Go
33 lines
1011 B
Go
package history
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"tea.chunkbyte.com/kato/captioneer/src/captions"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestHistoryKeepsFinalsBoundedAndProvisionalSeparate(t *testing.T) {
|
||
|
|
sink := New(2, true)
|
||
|
|
_ = sink.Publish(captions.Event{Kind: captions.Provisional, Text: "draft"})
|
||
|
|
if sink.Snapshot().Provisional == nil {
|
||
|
|
t.Fatal("provisional caption was not retained")
|
||
|
|
}
|
||
|
|
for _, text := range []string{"one", "two", "three"} {
|
||
|
|
_ = sink.Publish(captions.Event{Kind: captions.Final, Text: text})
|
||
|
|
}
|
||
|
|
snapshot := sink.Snapshot()
|
||
|
|
if snapshot.Provisional != nil || len(snapshot.Finals) != 2 || snapshot.Finals[0].Text != "two" {
|
||
|
|
t.Fatalf("snapshot = %#v", snapshot)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestDisabledHistoryKeepsExistingFinalsButStopsRecording(t *testing.T) {
|
||
|
|
sink := New(10, true)
|
||
|
|
_ = sink.Publish(captions.Event{Kind: captions.Final, Text: "kept"})
|
||
|
|
sink.SetEnabled(false)
|
||
|
|
_ = sink.Publish(captions.Event{Kind: captions.Final, Text: "ignored"})
|
||
|
|
if got := sink.Transcript(); got != "kept" {
|
||
|
|
t.Fatalf("transcript = %q", got)
|
||
|
|
}
|
||
|
|
}
|