feat: all tests
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package shell_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/versenilvis/iris/integration/shell"
|
||||
)
|
||||
|
||||
func TestSplitAliasTokens(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
expected []string
|
||||
}{
|
||||
{"g='git commit'", []string{"g='git commit'"}},
|
||||
{"a=b c=d", []string{"a=b", "c=d"}},
|
||||
{"ta='tmux a -t' l='ls -l'", []string{"ta='tmux a -t'", "l='ls -l'"}},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.input, func(t *testing.T) {
|
||||
got := shell.SplitAliasTokens(tt.input)
|
||||
if !reflect.DeepEqual(got, tt.expected) {
|
||||
t.Errorf("SplitAliasTokens(%q) = %v; want %v", tt.input, got, tt.expected)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestScanPosixAliases(t *testing.T) {
|
||||
tmp := t.TempDir()
|
||||
|
||||
aliasFile := filepath.Join(tmp, ".bashrc")
|
||||
content := `
|
||||
# some comments
|
||||
alias g='git'
|
||||
alias gca='git commit -a'
|
||||
alias multi="a" b="c"
|
||||
`
|
||||
os.WriteFile(aliasFile, []byte(content), 0644)
|
||||
|
||||
oldHome := os.Getenv("HOME")
|
||||
os.Setenv("HOME", tmp)
|
||||
defer os.Setenv("HOME", oldHome)
|
||||
|
||||
aliases := shell.ScanPosixAliases([]string{".bashrc"})
|
||||
|
||||
expected := map[string]string{
|
||||
"g": "git",
|
||||
"gca": "git commit -a",
|
||||
"multi": "a",
|
||||
"b": "c",
|
||||
}
|
||||
|
||||
for k, v := range expected {
|
||||
if aliases[k] != v {
|
||||
t.Errorf("Expected alias %s=%s, got %s", k, v, aliases[k])
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user