44 lines
930 B
Go
44 lines
930 B
Go
package command
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
"github.com/cli/cli/context"
|
|
)
|
|
|
|
func TestGistCreate(t *testing.T) {
|
|
ctx := context.NewBlank()
|
|
initContext = func() context.Context {
|
|
return ctx
|
|
}
|
|
|
|
http := initFakeHTTP()
|
|
|
|
http.StubResponse(200, bytes.NewBufferString(`
|
|
{
|
|
"html_url": "https://gist.github.com/aa5a315d61ae9438b18d"
|
|
}
|
|
`))
|
|
|
|
output, err := RunCommand(`gist create -f "../test/fixtures/gistCreate.json" -d "Gist description" -p=false`)
|
|
eq(t, err, nil)
|
|
|
|
bodyBytes, _ := ioutil.ReadAll(http.Requests[0].Body)
|
|
reqBody := struct {
|
|
Description string
|
|
Public bool
|
|
Files map[string]struct {
|
|
Content string
|
|
}
|
|
}{}
|
|
|
|
json.Unmarshal(bodyBytes, &reqBody)
|
|
|
|
eq(t, reqBody.Description, "Gist description")
|
|
eq(t, reqBody.Public, false)
|
|
eq(t, reqBody.Files["gistCreate.json"].Content, "{}")
|
|
eq(t, output.String(), "https://gist.github.com/aa5a315d61ae9438b18d\n")
|
|
}
|