add a test for the clearScreen function

This commit is contained in:
royeo 2019-02-18 10:36:53 +08:00
commit 601d387fcc
2 changed files with 25 additions and 3 deletions

View file

@ -380,9 +380,7 @@ func (s *Select) innerRun(cursorPos, scroll int, top rune) (int, string, error)
item := items[idx]
if s.HideSelected {
sb.Reset()
sb.Clear()
sb.Flush()
clearScreen(sb)
} else {
sb.Reset()
sb.Write(render(s.Templates.selected, item))
@ -622,3 +620,9 @@ func render(tpl *template.Template, data interface{}) []byte {
}
return buf.Bytes()
}
func clearScreen(sb *screenbuf.ScreenBuf) {
sb.Reset()
sb.Clear()
sb.Flush()
}

View file

@ -1,7 +1,10 @@
package promptui
import (
"bytes"
"testing"
"github.com/manifoldco/promptui/screenbuf"
)
func TestSelectTemplateRender(t *testing.T) {
@ -148,3 +151,18 @@ Description: {{.Description}}`,
}
})
}
func TestClearScreen(t *testing.T) {
var buf bytes.Buffer
sb := screenbuf.New(&buf)
sb.WriteString("test")
clearScreen(sb)
got := buf.String()
except := "\x1b[1A\x1b[2K\r"
if except != got {
t.Errorf("expected %q, got %q", except, got)
}
}