oh-my-posh/segment_golang_test.go
2020-11-12 14:04:52 +01:00

91 lines
1.9 KiB
Go

package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
type golangArgs struct {
enabled bool
goVersion string
hasFiles bool
displayVersion bool
}
func bootStrapGolangTest(args *golangArgs) *golang {
env := new(MockedEnvironment)
env.On("hasCommand", "go").Return(args.enabled)
env.On("runCommand", "go", []string{"version"}).Return(args.goVersion, nil)
env.On("hasFiles", "*.go").Return(args.hasFiles)
props := &properties{
values: map[Property]interface{}{
DisplayVersion: args.displayVersion,
},
}
g := &golang{
env: env,
props: props,
}
return g
}
func TestGolangNoGoInstalled(t *testing.T) {
args := &golangArgs{
enabled: false,
}
golang := bootStrapGolangTest(args)
assert.False(t, golang.enabled())
}
func TestGolangGoInstalledNoFiles(t *testing.T) {
args := &golangArgs{
enabled: true,
hasFiles: false,
}
golang := bootStrapGolangTest(args)
assert.False(t, golang.enabled())
}
func TestGolangFilesNoGo(t *testing.T) {
args := &golangArgs{
enabled: false,
hasFiles: true,
}
golang := bootStrapGolangTest(args)
assert.False(t, golang.enabled())
}
func TestGolangGoEnabled(t *testing.T) {
args := &golangArgs{
enabled: true,
hasFiles: true,
}
golang := bootStrapGolangTest(args)
assert.True(t, golang.enabled())
}
func TestGolangGoEnabledWithVersion(t *testing.T) {
args := &golangArgs{
enabled: true,
hasFiles: true,
displayVersion: true,
goVersion: "go version go1.15.3 darwin/amd64",
}
golang := bootStrapGolangTest(args)
assert.True(t, golang.enabled())
assert.Equal(t, "1.15.3", golang.string())
}
func TestGolangGoEnabledWithoutVersion(t *testing.T) {
args := &golangArgs{
enabled: true,
hasFiles: true,
displayVersion: false,
goVersion: "go version go1.15.3 darwin/amd64",
}
golang := bootStrapGolangTest(args)
assert.True(t, golang.enabled())
assert.Equal(t, "", golang.string())
}