38 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|