Files
jira/vendor/gopkg.in/AlecAivazis/survey.v1/editor_test.go
T
2017-09-06 11:35:00 -07:00

84 lines
2.4 KiB
Go

package survey
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
"gopkg.in/AlecAivazis/survey.v1/core"
"gopkg.in/AlecAivazis/survey.v1/terminal"
)
func init() {
// disable color output for all prompts to simplify testing
core.DisableColor = true
}
func TestEditorRender(t *testing.T) {
tests := []struct {
title string
prompt Editor
data EditorTemplateData
expected string
}{
{
"Test Editor question output without default",
Editor{Message: "What is your favorite month:"},
EditorTemplateData{},
"? What is your favorite month: [Enter to launch editor] ",
},
{
"Test Editor question output with default",
Editor{Message: "What is your favorite month:", Default: "April"},
EditorTemplateData{},
"? What is your favorite month: (April) [Enter to launch editor] ",
},
{
"Test Editor answer output",
Editor{Message: "What is your favorite month:"},
EditorTemplateData{Answer: "October", ShowAnswer: true},
"? What is your favorite month: October\n",
},
{
"Test Editor question output without default but with help hidden",
Editor{Message: "What is your favorite month:", Help: "This is helpful"},
EditorTemplateData{},
"? What is your favorite month: [? for help] [Enter to launch editor] ",
},
{
"Test Editor question output with default and with help hidden",
Editor{Message: "What is your favorite month:", Default: "April", Help: "This is helpful"},
EditorTemplateData{},
"? What is your favorite month: [? for help] (April) [Enter to launch editor] ",
},
{
"Test Editor question output without default but with help shown",
Editor{Message: "What is your favorite month:", Help: "This is helpful"},
EditorTemplateData{ShowHelp: true},
`ⓘ This is helpful
? What is your favorite month: [Enter to launch editor] `,
},
{
"Test Editor question output with default and with help shown",
Editor{Message: "What is your favorite month:", Default: "April", Help: "This is helpful"},
EditorTemplateData{ShowHelp: true},
`ⓘ This is helpful
? What is your favorite month: (April) [Enter to launch editor] `,
},
}
outputBuffer := bytes.NewBufferString("")
terminal.Stdout = outputBuffer
for _, test := range tests {
outputBuffer.Reset()
test.data.Editor = test.prompt
err := test.prompt.Render(
EditorQuestionTemplate,
test.data,
)
assert.Nil(t, err, test.title)
assert.Equal(t, test.expected, outputBuffer.String(), test.title)
}
}