oh-my-posh/src/segment_command_test.go

163 lines
2.8 KiB
Go
Raw Normal View History

// +build !windows
2019-03-13 04:14:30 -07:00
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestExecuteCommand(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "echo hello",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.True(t, enabled)
assert.Equal(t, "hello", c.string())
2019-03-13 04:14:30 -07:00
}
func TestExecuteMultipleCommandsOrFirst(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "exit 1 || echo hello",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.True(t, enabled)
assert.Equal(t, "hello", c.string())
2019-03-13 04:14:30 -07:00
}
func TestExecuteMultipleCommandsOrSecond(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "echo hello || echo world",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.True(t, enabled)
assert.Equal(t, "hello", c.string())
2019-03-13 04:14:30 -07:00
}
func TestExecuteMultipleCommandsAnd(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "echo hello && echo world",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.True(t, enabled)
assert.Equal(t, "helloworld", c.string())
2019-03-13 04:14:30 -07:00
}
func TestExecuteSingleCommandEmpty(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.False(t, enabled)
}
func TestExecuteSingleCommandNoCommandProperty(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.True(t, enabled)
assert.Equal(t, "no command specified", c.value)
}
func TestExecuteMultipleCommandsAndDisabled(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "echo && echo",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.False(t, enabled)
}
func TestExecuteMultipleCommandsOrDisabled(t *testing.T) {
2021-01-10 02:52:59 -08:00
env := &environment{}
debug := false
env.init(&args{
Debug: &debug,
})
2019-03-13 04:14:30 -07:00
props := &properties{
values: map[Property]interface{}{
Command: "echo|| echo",
},
}
c := &command{
props: props,
env: env,
}
enabled := c.enabled()
assert.False(t, enabled)
}