Files
Captioneer/src/output/terminal/terminal_test.go
T

38 lines
1.0 KiB
Go

package terminal
import (
"bytes"
"testing"
"time"
"tea.chunkbyte.com/kato/captioneer/src/captions"
)
func TestTerminalProvisionalAndFinalOutput(t *testing.T) {
var output bytes.Buffer
sink := New(&output)
if err := sink.Publish(captions.Event{Kind: captions.Provisional, Text: "draft"}); err != nil {
t.Fatal(err)
}
if err := sink.Publish(captions.Event{
Kind: captions.Final, Text: "done", StartedAt: time.Second, EndedAt: 2500 * time.Millisecond,
}); err != nil {
t.Fatal(err)
}
want := "\r\033[2K… draft\r\033[2K[1.00s-2.50s] done\n"
if output.String() != want {
t.Fatalf("output = %q, want %q", output.String(), want)
}
}
func TestTerminalHideClearsOnlyVisiblePreview(t *testing.T) {
var output bytes.Buffer
sink := New(&output)
_ = sink.Publish(captions.Event{Kind: captions.Hide})
_ = sink.Publish(captions.Event{Kind: captions.Provisional, Text: "draft"})
_ = sink.Publish(captions.Event{Kind: captions.Hide})
if got := output.String(); got != "\r\033[2K… draft\r\033[2K" {
t.Fatalf("unexpected output %q", got)
}
}