48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package create
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
"github.com/cli/cli/api"
|
|
"github.com/cli/cli/pkg/httpmock"
|
|
)
|
|
|
|
func Test_RepoCreate(t *testing.T) {
|
|
reg := &httpmock.Registry{}
|
|
httpClient := api.NewHTTPClient(api.ReplaceTripper(reg))
|
|
|
|
reg.StubResponse(200, bytes.NewBufferString(`{}`))
|
|
|
|
input := repoCreateInput{
|
|
Description: "roasted chesnuts",
|
|
HomepageURL: "http://example.com",
|
|
}
|
|
|
|
_, err := repoCreate(httpClient, "github.com", input, "")
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
|
|
if len(reg.Requests) != 1 {
|
|
t.Fatalf("expected 1 HTTP request, seen %d", len(reg.Requests))
|
|
}
|
|
|
|
var reqBody struct {
|
|
Query string
|
|
Variables struct {
|
|
Input map[string]interface{}
|
|
}
|
|
}
|
|
|
|
bodyBytes, _ := ioutil.ReadAll(reg.Requests[0].Body)
|
|
_ = json.Unmarshal(bodyBytes, &reqBody)
|
|
if description := reqBody.Variables.Input["description"].(string); description != "roasted chesnuts" {
|
|
t.Errorf("expected description to be %q, got %q", "roasted chesnuts", description)
|
|
}
|
|
if homepage := reqBody.Variables.Input["homepageUrl"].(string); homepage != "http://example.com" {
|
|
t.Errorf("expected homepageUrl to be %q, got %q", "http://example.com", homepage)
|
|
}
|
|
}
|