package exe_test
import (
"fmt"
"os"
"path/filepath"
"testing"
"git.sr.ht/~hristoast/wem/exe"
)
func TestExe(t *testing.T) {
// Setup
dir := t.TempDir()
os.Setenv("HOME", dir)
stuffDir := filepath.Join(os.Getenv("HOME"), "stuff")
thingsDir := filepath.Join(stuffDir, "things")
dirDir := filepath.Join(stuffDir, "dir")
os.MkdirAll(thingsDir, 0755)
os.MkdirAll(dirDir, 0755)
t.Run("Do a quick exe", func(t *testing.T) {
expected := `dir
things
`
out, err := exe.QuickExe("ls", []string{stuffDir}...)
if err != nil {
t.Errorf("Got an error: %v\n", err)
}
if out != expected {
fmt.Println(out)
t.Errorf("got: %s; expected: %s", out, expected)
}
})
t.Run("Use an ExeCtx", func(t *testing.T) {
e := &exe.ExeCtx{
Args: []string{stuffDir},
Command: "ls",
Stderr: os.Stderr,
Stdout: os.Stdout,
Title: "Test!",
WorkDir: os.Getenv("HOME"),
}
err := e.Execute()
if err != nil {
t.Errorf("Got an error: %v\n", err)
}
})
//TODO: Test GenPrefix; this will require an X server
os.RemoveAll(dir)
}