package main import ( "fmt" "os" "strings" "testing" ) func TestKeyboardNext(t *testing.T) { defer fakeInput(t)() k, err := NewKeyboard() if err != nil { t.Fatal(err) } go k.Listen() for i := 0; i < 5; i++ { t.Log(k.Next()) } k.Close() } func TestKeyboardEvents(t *testing.T) { defer fakeInput(t)() k, err := NewKeyboard() if err != nil { t.Fatal(err) } go k.Listen() i := 0 for b := range k.Events { i += 1 t.Log(b) if i == 5 { k.Close() } } } func fakeInput(t *testing.T) func() { if !strings.Contains(fmt.Sprint(os.Args), "-test.v=true") { t.Fatal("-v not passed, requries manual testing for input") } return func() {} }