Fix up structure for better testing
This commit is contained in:
parent
fd1d09dfc2
commit
9058feebec
2 changed files with 19 additions and 8 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue