71 lines
1.5 KiB
Go
71 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
func TestCmdFollow(t *testing.T) {
|
|
ok := false
|
|
testWithServer(
|
|
func(w http.ResponseWriter, r *http.Request) {
|
|
switch r.URL.Path {
|
|
case "/api/v1/accounts/search":
|
|
q := r.URL.Query().Get("q")
|
|
if q == "mattn" {
|
|
fmt.Fprintln(w, `[{"id": 123}]`)
|
|
return
|
|
} else if q == "different_id" {
|
|
fmt.Fprintln(w, `[{"id": 1234567}]`)
|
|
return
|
|
} else if q == "empty" {
|
|
fmt.Fprintln(w, `[]`)
|
|
return
|
|
}
|
|
case "/api/v1/accounts/123/follow":
|
|
fmt.Fprintln(w, `{"id": 123}`)
|
|
ok = true
|
|
return
|
|
}
|
|
http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
|
|
return
|
|
},
|
|
func(app *cli.App) {
|
|
err := app.Run([]string{"mstdn", "follow", "mattn"})
|
|
if err != nil {
|
|
t.Fatalf("should not be fail: %v", err)
|
|
}
|
|
},
|
|
func(app *cli.App) {
|
|
err := app.Run([]string{"mstdn", "follow"})
|
|
if err == nil {
|
|
t.Fatalf("should be fail: %v", err)
|
|
}
|
|
},
|
|
func(app *cli.App) {
|
|
err := app.Run([]string{"mstdn", "follow", "fail"})
|
|
if err == nil {
|
|
t.Fatalf("should be fail: %v", err)
|
|
}
|
|
},
|
|
func(app *cli.App) {
|
|
err := app.Run([]string{"mstdn", "follow", "empty"})
|
|
if err != nil {
|
|
t.Fatalf("should not be fail: %v", err)
|
|
}
|
|
},
|
|
func(app *cli.App) {
|
|
err := app.Run([]string{"mstdn", "follow", "different_id"})
|
|
if err == nil {
|
|
t.Fatalf("should be fail: %v", err)
|
|
}
|
|
},
|
|
)
|
|
if !ok {
|
|
t.Fatal("something wrong to sequence to follow account")
|
|
}
|
|
}
|