gogcli/internal/googleauth/open_browser_test.go
2025-12-31 19:47:32 +01:00

49 lines
1.2 KiB
Go

package googleauth
import "testing"
func TestOpenBrowserCommand(t *testing.T) {
name, args := openBrowserCommand("https://example.com", "darwin")
if name != "open" || len(args) != 1 || args[0] != "https://example.com" {
t.Fatalf("darwin: %q %#v", name, args)
}
name, args = openBrowserCommand("https://example.com", "windows")
if name != "rundll32" || len(args) != 2 || args[1] != "https://example.com" {
t.Fatalf("windows: %q %#v", name, args)
}
name, args = openBrowserCommand("https://example.com", "linux")
if name != "xdg-open" || len(args) != 1 || args[0] != "https://example.com" {
t.Fatalf("linux: %q %#v", name, args)
}
}
func TestOpenBrowser_UsesStartCommand(t *testing.T) {
orig := startCommand
t.Cleanup(func() { startCommand = orig })
var gotName string
var gotArgs []string
startCommand = func(name string, args ...string) error {
gotName = name
gotArgs = append([]string(nil), args...)
return nil
}
if err := openBrowser("https://example.com"); err != nil {
t.Fatalf("openBrowser: %v", err)
}
if gotName == "" || len(gotArgs) == 0 {
t.Fatalf("expected startCommand to be called")
}
if gotArgs[len(gotArgs)-1] != "https://example.com" {
t.Fatalf("unexpected args: %q %#v", gotName, gotArgs)
}
}