oh-my-posh/src/segment_text_test.go
2021-11-26 11:11:07 +01:00

46 lines
1.6 KiB
Go

package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestTextSegment(t *testing.T) {
cases := []struct {
Case string
ExpectedString string
Text string
ExpectedDisabled bool
}{
{Case: "standard text", ExpectedString: "hello", Text: "hello"},
{Case: "template text with env var", ExpectedString: "hello world", Text: "{{ .Env.HELLO }} world"},
{Case: "template text with shell name", ExpectedString: "hello world from terminal", Text: "{{ .Env.HELLO }} world from {{ .Shell }}"},
{Case: "template text with folder", ExpectedString: "hello world in posh", Text: "{{ .Env.HELLO }} world in {{ .Folder }}"},
{Case: "template text with user", ExpectedString: "hello Posh", Text: "{{ .Env.HELLO }} {{ .User }}"},
{Case: "empty text", Text: "", ExpectedDisabled: true},
{Case: "empty template result", Text: "{{ .Env.WORLD }}", ExpectedDisabled: true},
}
for _, tc := range cases {
env := new(MockedEnvironment)
env.On("getcwd", nil).Return("/usr/home/posh")
env.On("homeDir", nil).Return("/usr/home")
env.On("getPathSeperator", nil).Return("/")
env.On("isRunningAsRoot", nil).Return(true)
env.On("getShellName", nil).Return("terminal")
env.On("getenv", "HELLO").Return("hello")
env.On("getenv", "WORLD").Return("")
env.On("getCurrentUser", nil).Return("Posh")
env.On("getHostName", nil).Return("MyHost", nil)
txt := &text{
env: env,
props: map[Property]interface{}{
TextProperty: tc.Text,
},
}
assert.Equal(t, tc.ExpectedDisabled, !txt.enabled(), tc.Case)
assert.Equal(t, tc.ExpectedString, txt.string(), tc.Case)
}
}