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
|
return cmd, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var linuxExe = func() string {
|
func linuxExe() string {
|
||||||
exe := "xdg-open"
|
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
|
return exe
|
||||||
}
|
}
|
||||||
|
|
||||||
func findExe(command string) bool {
|
var lookPath = exec.LookPath
|
||||||
_, err := exec.LookPath(command)
|
|
||||||
return err == nil
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package browser
|
package browser
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
@ -52,8 +53,15 @@ func TestForOS(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
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) {
|
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) {
|
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)
|
t.Errorf("ForOS() = %v, want %v", cmd.Args, tt.want)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue