diff --git a/cmd/mstdn/cmd_upload_test.go b/cmd/mstdn/cmd_upload_test.go new file mode 100644 index 0000000..6f6b99a --- /dev/null +++ b/cmd/mstdn/cmd_upload_test.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "net/http" + "strings" + "testing" + + "github.com/urfave/cli" +) + +func TestCmdUpload(t *testing.T) { + out := testWithServer( + func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case "/api/v1/media": + fmt.Fprintln(w, `{"ID": 123}`) + return + } + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + }, + func(app *cli.App) { + app.Run([]string{"mstdn", "upload", "../../testdata/logo.png"}) + }, + ) + if !strings.Contains(out, "123") { + t.Fatalf("%q should be contained in output of command: %v", "123", out) + } +}