mirror of
https://github.com/asciinema/asciinema.git
synced 2025-12-16 19:58:03 +01:00
47 lines
824 B
Go
47 lines
824 B
Go
// +build !race
|
|
|
|
package terminal_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/asciinema/asciinema/terminal"
|
|
)
|
|
|
|
type testWriter struct {
|
|
chunks []string
|
|
}
|
|
|
|
func (w *testWriter) Write(p []byte) (int, error) {
|
|
w.chunks = append(w.chunks, string(p))
|
|
return len(p), nil
|
|
}
|
|
|
|
func TestTerminal_Record(t *testing.T) {
|
|
command := `python -c "
|
|
import sys, time, os
|
|
sys.stdout.write('foo')
|
|
sys.stdout.flush()
|
|
time.sleep(0.01)
|
|
sys.stdout.write(os.environ['ASCIINEMA_REC'])
|
|
"`
|
|
stdoutCopy := &testWriter{}
|
|
|
|
err := terminal.NewTerminal().Record(command, stdoutCopy)
|
|
|
|
if err != nil {
|
|
t.Errorf("got error: %v", err)
|
|
return
|
|
}
|
|
|
|
chunk := stdoutCopy.chunks[0]
|
|
if chunk != "foo" {
|
|
t.Errorf("expected \"foo\", got \"%v\"", chunk)
|
|
}
|
|
|
|
chunk = stdoutCopy.chunks[1]
|
|
if chunk != "1" {
|
|
t.Errorf("expected \"1\", got \"%v\"", chunk)
|
|
}
|
|
}
|