From d57df64d26f49e3b2394f96933ff24c95bbc8201 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 14 Apr 2017 20:05:18 +0900 Subject: [PATCH] add test --- cmd/mstdn/main.go | 21 ++++++++++++++++++--- cmd/mstdn/main_test.go | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/cmd/mstdn/main.go b/cmd/mstdn/main.go index 4f0ebc1..ab0cd4f 100644 --- a/cmd/mstdn/main.go +++ b/cmd/mstdn/main.go @@ -63,6 +63,17 @@ func textContent(s string) string { return buf.String() } +var ( + readUsername func() (string, error) = func() (string, error) { + b, _, err := bufio.NewReader(os.Stdin).ReadLine() + if err != nil { + return "", err + } + return string(b), nil + } + readPassword func() (string, error) +) + func prompt() (string, string, error) { t, err := tty.Open() if err != nil { @@ -71,14 +82,18 @@ func prompt() (string, string, error) { defer t.Close() fmt.Print("E-Mail: ") - b, _, err := bufio.NewReader(os.Stdin).ReadLine() + email, err := readUsername() if err != nil { return "", "", err } - email := string(b) fmt.Print("Password: ") - password, err := t.ReadPassword() + var password string + if readPassword == nil { + password, err = t.ReadPassword() + } else { + password, err = readPassword() + } if err != nil { return "", "", err } diff --git a/cmd/mstdn/main_test.go b/cmd/mstdn/main_test.go index 89063f2..f4fdf04 100644 --- a/cmd/mstdn/main_test.go +++ b/cmd/mstdn/main_test.go @@ -108,3 +108,22 @@ func TestGetConfig(t *testing.T) { t.Fatalf("want %q but %q", "foo", got) } } + +func TestPrompt(t *testing.T) { + readUsername = func() (string, error) { + return "foo", nil + } + readPassword = func() (string, error) { + return "bar", nil + } + username, password, err := prompt() + if err != nil { + t.Fatal(err) + } + if username != "foo" { + t.Fatalf("want %q but %q", "foo", username) + } + if password != "bar" { + t.Fatalf("want %q but %q", "bar", password) + } +}