add test for notification command

pull/19/head
Yasuhiro Matsumoto 2017-04-16 22:50:09 +09:00
parent ea84240cce
commit 86066b9561
2 changed files with 32 additions and 3 deletions

View File

@ -17,11 +17,11 @@ func cmdNotification(c *cli.Context) error {
for _, n := range notifications {
if n.Status != nil {
color.Set(color.FgHiRed)
fmt.Print(n.Account.Username)
fmt.Fprint(c.App.Writer, n.Account.Username)
color.Set(color.Reset)
fmt.Println(" " + n.Type)
fmt.Fprintln(c.App.Writer, " "+n.Type)
s := n.Status
fmt.Println(textContent(s.Content))
fmt.Fprintln(c.App.Writer, textContent(s.Content))
}
}
return nil

View File

@ -0,0 +1,29 @@
package main
import (
"fmt"
"net/http"
"strings"
"testing"
"github.com/urfave/cli"
)
func TestCmdNotification(t *testing.T) {
out := testWithServer(
func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/api/v1/notifications" {
http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
return
}
fmt.Fprintln(w, `[{"type": "rebloged", "status": {"content": "foo"}}]`)
return
},
func(app *cli.App) {
app.Run([]string{"mstdn", "notification"})
},
)
if !strings.Contains(out, "rebloged") {
t.Fatalf("%q should be contained in output of instance command: %v", "rebloged", out)
}
}