From 9058feebec47d343a42d45e29f058ad4c6b9a63b Mon Sep 17 00:00:00 2001 From: Sam Coe Date: Wed, 16 Sep 2020 17:19:11 +0200 Subject: [PATCH] Fix up structure for better testing --- pkg/browser/browser.go | 17 ++++++++++------- pkg/browser/browser_test.go | 10 +++++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/pkg/browser/browser.go b/pkg/browser/browser.go index 2408a2e08..c710a3b38 100644 --- a/pkg/browser/browser.go +++ b/pkg/browser/browser.go @@ -52,15 +52,18 @@ func FromLauncher(launcher, url string) (*exec.Cmd, error) { return cmd, nil } -var linuxExe = func() string { +func linuxExe() string { exe := "xdg-open" - if !findExe("xdg-open") && findExe("wslview") { - exe = "wslview" + + _, err := lookPath(exe) + if err != nil { + _, err := lookPath("wslview") + if err == nil { + exe = "wslview" + } } + return exe } -func findExe(command string) bool { - _, err := exec.LookPath(command) - return err == nil -} +var lookPath = exec.LookPath diff --git a/pkg/browser/browser_test.go b/pkg/browser/browser_test.go index 11dd80372..48b91f7c1 100644 --- a/pkg/browser/browser_test.go +++ b/pkg/browser/browser_test.go @@ -1,6 +1,7 @@ package browser import ( + "errors" "reflect" "testing" ) @@ -52,8 +53,15 @@ func TestForOS(t *testing.T) { }, } for _, tt := range tests { + lookPath = func(file string) (string, error) { + if file == tt.exe { + return file, nil + } else { + return "", errors.New("not found") + } + } + t.Run(tt.name, func(t *testing.T) { - linuxExe = func() string { return tt.exe } if cmd := ForOS(tt.args.goos, tt.args.url); !reflect.DeepEqual(cmd.Args, tt.want) { t.Errorf("ForOS() = %v, want %v", cmd.Args, tt.want) }