From b2c1b12bee432d552c1442d46bb861a83369ee5b Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 22 May 2020 14:39:53 -0700 Subject: [PATCH] Don't delete branch if the repo flag is used --- command/pr.go | 2 +- command/pr_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/command/pr.go b/command/pr.go index 92cd8972d..c740b3968 100644 --- a/command/pr.go +++ b/command/pr.go @@ -549,7 +549,7 @@ func prMerge(cmd *cobra.Command, args []string) error { fmt.Fprintf(colorableOut(cmd), "%s %s pull request #%d\n", utils.Magenta("✔"), action, pr.Number) - if deleteBranch { + if deleteBranch && !cmd.Flags().Changed("repo") { repo, err := api.GitHubRepo(apiClient, baseRepo) if err != nil { return err diff --git a/command/pr_test.go b/command/pr_test.go index d9b535c5e..5f5cdf6b8 100644 --- a/command/pr_test.go +++ b/command/pr_test.go @@ -1017,6 +1017,31 @@ func TestPrMerge(t *testing.T) { } } +func TestPrMerge_withRepoFlag(t *testing.T) { + initBlankContext("", "OWNER/REPO", "master") + http := initFakeHTTP() + http.StubResponse(200, bytes.NewBufferString(`{ "data": { "repository": { + "pullRequest": { "number": 1, "closed": false, "state": "OPEN"} + } } }`)) + http.StubResponse(200, bytes.NewBufferString(`{"id": "THE-ID"}`)) + + cs, cmdTeardown := test.InitCmdStubber() + defer cmdTeardown() + + eq(t, len(cs.Calls), 0) + + output, err := RunCommand("pr merge 1 --merge -R stinky/boi") + if err != nil { + t.Fatalf("error running command `pr merge`: %v", err) + } + + r := regexp.MustCompile(`Merged pull request #1`) + + if !r.MatchString(output.String()) { + t.Fatalf("output did not match regexp /%s/\n> output\n%q\n", r, output.Stderr()) + } +} + func TestPrMerge_deleteBranch(t *testing.T) { initWithStubs("blueberries", stubResponse{200, bytes.NewBufferString(`