diff --git a/cmd/main_test.go b/cmd/main_test.go index 6ce284f..da9a639 100644 --- a/cmd/main_test.go +++ b/cmd/main_test.go @@ -13,14 +13,33 @@ func TestMain(t *testing.T) { } func TestE2E(t *testing.T) { - home, err := os.UserHomeDir() + taskPath, err := findTaskExecutable() if err != nil { - t.Fatalf("Failed to get user home directory: %v", err) + t.Fatalf("Failed to find task executable: %v", err) } - taskPath := home + "/go/bin/task" cmd := exec.Command(taskPath, "test-e2e") output, err := cmd.CombinedOutput() if err != nil { t.Fatalf("Failed to run e2e test: %v\n%s", err, output) } } + +func findTaskExecutable() (string, error) { + // First, try to find "task" in the system's PATH + path, err := exec.LookPath("task") + if err == nil { + return path, nil + } + + // If not found in PATH, try to find it in the user's Go bin directory + home, err := os.UserHomeDir() + if err != nil { + return "", err + } + goBin := home + "/go/bin/task" + if _, err := os.Stat(goBin); err == nil { + return goBin, nil + } + + return "", os.ErrNotExist +}