Fix tests

This commit is contained in:
Mislav Marohnić 2020-01-21 22:56:15 +01:00
parent 7a614ce697
commit 6c49614db7
4 changed files with 45 additions and 18 deletions

View file

@ -2,7 +2,6 @@ package api
import (
"bytes"
"fmt"
"io/ioutil"
"reflect"
"testing"
@ -47,5 +46,7 @@ func TestGraphQLError(t *testing.T) {
response := struct{}{}
http.StubResponse(200, bytes.NewBufferString(`{"errors":[{"message":"OH NO"}]}`))
err := client.GraphQL("", nil, &response)
eq(t, err, fmt.Errorf("graphql error: 'OH NO'"))
if err == nil || err.Error() != "graphql error: 'OH NO'" {
t.Fatalf("got %q", err.Error())
}
}

View file

@ -404,7 +404,7 @@ func PullRequestForBranch(client *Client, ghRepo Repo, branch string) (*PullRequ
}
// CreatePullRequest creates a pull request in a GitHub repository
func CreatePullRequest(client *Client, repo Repository, params map[string]interface{}) (*PullRequest, error) {
func CreatePullRequest(client *Client, repo *Repository, params map[string]interface{}) (*PullRequest, error) {
query := `
mutation CreatePullRequest($input: CreatePullRequestInput!) {
createPullRequest(input: $input) {

View file

@ -61,8 +61,6 @@ func prCreate(cmd *cobra.Command, _ []string) error {
return fmt.Errorf("must be on a branch named differently than %q", baseBranch)
}
fmt.Fprintf(colorableErr(cmd), "\nCreating pull request for %s into %s in %s/%s\n\n", utils.Cyan(headBranch), utils.Cyan(baseBranch), baseRepo.RepoOwner(), baseRepo.RepoName())
headRemote, err := repoContext.RemoteForRepo(headRepo)
if err != nil {
return errors.Wrap(err, "")
@ -86,6 +84,12 @@ func prCreate(cmd *cobra.Command, _ []string) error {
return utils.OpenInBrowser(openURL)
}
fmt.Fprintf(colorableErr(cmd), "\nCreating pull request for %s into %s in %s/%s\n\n",
utils.Cyan(headBranch),
utils.Cyan(baseBranch),
baseRepo.RepoOwner(),
baseRepo.RepoName())
title, err := cmd.Flags().GetString("title")
if err != nil {
return errors.Wrap(err, "could not parse title")
@ -140,8 +144,7 @@ func prCreate(cmd *cobra.Command, _ []string) error {
"headRefName": headBranch,
}
repo := api.Repository{}
pr, err := api.CreatePullRequest(client, repo, params)
pr, err := api.CreatePullRequest(client, baseRepo, params)
if err != nil {
return errors.Wrap(err, "failed to create pull request")
}
@ -261,7 +264,7 @@ func (r resolvedRemotes) BaseRepo() (*api.Repository, error) {
func (r resolvedRemotes) HeadRepo() (*api.Repository, error) {
for _, repo := range r.network.Repositories {
if repo != nil && repo.ViewerCanPush() {
return repo.Parent, nil
return repo, nil
}
}
return nil, errors.New("none of the repositories have push access")

View file

@ -52,8 +52,15 @@ func TestPRCreate(t *testing.T) {
http := initFakeHTTP()
http.StubResponse(200, bytes.NewBufferString(`
{ "data": { "repository": {
"id": "REPOID"
{ "data": { "repo_000": {
"id": "REPOID",
"name": "REPO",
"owner": {"login": "OWNER"},
"defaultBranchRef": {
"name": "master",
"target": {"oid": "deadbeef"}
},
"viewerPermission": "WRITE"
} } }
`))
http.StubResponse(200, bytes.NewBufferString(`
@ -103,7 +110,20 @@ func TestPRCreate_web(t *testing.T) {
initContext = func() context.Context {
return ctx
}
initFakeHTTP()
http := initFakeHTTP()
http.StubResponse(200, bytes.NewBufferString(`
{ "data": { "repo_000": {
"id": "REPOID",
"name": "REPO",
"owner": {"login": "OWNER"},
"defaultBranchRef": {
"name": "master",
"target": {"oid": "deadbeef"}
},
"viewerPermission": "WRITE"
} } }
`))
ranCommands := [][]string{}
restoreCmd := utils.SetPrepareCmd(func(cmd *exec.Cmd) utils.Runnable {
@ -116,11 +136,7 @@ func TestPRCreate_web(t *testing.T) {
eq(t, err, nil)
eq(t, output.String(), "")
eq(t, output.Stderr(), `
Creating pull request for feature into master in OWNER/REPO
Opening https://github.com/OWNER/REPO/pull/feature in your browser.
`)
eq(t, output.Stderr(), "Opening https://github.com/OWNER/REPO/pull/feature in your browser.\n")
eq(t, len(ranCommands), 3)
eq(t, strings.Join(ranCommands[1], " "), "git push --set-upstream origin HEAD:feature")
@ -139,8 +155,15 @@ func TestPRCreate_ReportsUncommittedChanges(t *testing.T) {
http := initFakeHTTP()
http.StubResponse(200, bytes.NewBufferString(`
{ "data": { "repository": {
"id": "REPOID"
{ "data": { "repo_000": {
"id": "REPOID",
"name": "REPO",
"owner": {"login": "OWNER"},
"defaultBranchRef": {
"name": "master",
"target": {"oid": "deadbeef"}
},
"viewerPermission": "WRITE"
} } }
`))
http.StubResponse(200, bytes.NewBufferString(`