diff --git a/command/pr.go b/command/pr.go index 071bea50c..b0a47db3c 100644 --- a/command/pr.go +++ b/command/pr.go @@ -479,7 +479,7 @@ func prMerge(cmd *cobra.Command, args []string) error { return nil } - isInteractive := !cmd.Flags().Changed("rebase") && !cmd.Flags().Changed("squash") && !cmd.Flags().Changed("merged") + isInteractive := !cmd.Flags().Changed("rebase") && !cmd.Flags().Changed("squash") && !cmd.Flags().Changed("merge") if isInteractive { mergeMethod, deleteBranch, err = prInteractiveMerge() if err != nil { @@ -592,7 +592,7 @@ func prDeleteCurrentBranch(repo *api.Repository) (string, error) { return "", err } - err = git.DeleteBranch(branch) + err = git.DeleteLocalBranch(branch) return branch, err } diff --git a/command/pr_test.go b/command/pr_test.go index 3920cb4e6..9195364cd 100644 --- a/command/pr_test.go +++ b/command/pr_test.go @@ -996,7 +996,7 @@ func TestPrMerge(t *testing.T) { stubResponse{200, bytes.NewBufferString(`{"id": "THE-ID"}`)}, ) - output, err := RunCommand("pr merge 1") + output, err := RunCommand("pr merge 1 --merge") if err != nil { t.Fatalf("error running command `pr merge`: %v", err) } @@ -1013,6 +1013,10 @@ func TestPrMerge_noPrNumberGiven(t *testing.T) { defer cmdTeardown() cs.Stub("branch.blueberries.remote origin\nbranch.blueberries.merge refs/heads/blueberries") // git config --get-regexp ^branch\.master\.(remote|merge) + cs.Stub("") // git config --get-regexp ^branch\.blueberries\.(remote|merge)$ + cs.Stub("") // git symbolic-ref --quiet --short HEAD + cs.Stub("") // git checkout master + cs.Stub("") // git branch -d jsonFile, _ := os.Open("../test/fixtures/prViewPreviewWithMetadataByBranch.json") defer jsonFile.Close() @@ -1022,7 +1026,7 @@ func TestPrMerge_noPrNumberGiven(t *testing.T) { stubResponse{200, bytes.NewBufferString(`{"id": "THE-ID"}`)}, ) - output, err := RunCommand("pr merge") + output, err := RunCommand("pr merge --merge") if err != nil { t.Fatalf("error running command `pr merge`: %v", err) } @@ -1042,6 +1046,14 @@ func TestPrMerge_rebase(t *testing.T) { stubResponse{200, bytes.NewBufferString(`{"id": "THE-ID"}`)}, ) + cs, cmdTeardown := test.InitCmdStubber() + defer cmdTeardown() + + cs.Stub("") // git config --get-regexp ^branch\.blueberries\.(remote|merge)$ + cs.Stub("") // git symbolic-ref --quiet --short HEAD + cs.Stub("") // git checkout master + cs.Stub("") // git branch -d + output, err := RunCommand("pr merge 2 --rebase") if err != nil { t.Fatalf("error running command `pr merge`: %v", err) @@ -1062,6 +1074,14 @@ func TestPrMerge_squash(t *testing.T) { stubResponse{200, bytes.NewBufferString(`{"id": "THE-ID"}`)}, ) + cs, cmdTeardown := test.InitCmdStubber() + defer cmdTeardown() + + cs.Stub("") // git config --get-regexp ^branch\.blueberries\.(remote|merge)$ + cs.Stub("") // git symbolic-ref --quiet --short HEAD + cs.Stub("") // git checkout master + cs.Stub("") // git branch -d + output, err := RunCommand("pr merge 3 --squash") if err != nil { t.Fatalf("error running command `pr merge`: %v", err) @@ -1082,6 +1102,14 @@ func TestPrMerge_alreadyMerged(t *testing.T) { stubResponse{200, bytes.NewBufferString(`{"id": "THE-ID"}`)}, ) + cs, cmdTeardown := test.InitCmdStubber() + defer cmdTeardown() + + cs.Stub("") // git config --get-regexp ^branch\.blueberries\.(remote|merge)$ + cs.Stub("") // git symbolic-ref --quiet --short HEAD + cs.Stub("") // git checkout master + cs.Stub("") // git branch -d + output, err := RunCommand("pr merge 4") if err == nil { t.Fatalf("expected an error running command `pr merge`: %v", err) @@ -1105,10 +1133,10 @@ func TestPRMerge_interactive(t *testing.T) { cs, cmdTeardown := test.InitCmdStubber() defer cmdTeardown() - cs.Stub("") - cs.Stub("") - cs.Stub("") - cs.Stub("") + cs.Stub("") // git config --get-regexp ^branch\.blueberries\.(remote|merge)$ + cs.Stub("") // git symbolic-ref --quiet --short HEAD + cs.Stub("") // git checkout master + cs.Stub("") // git branch -d as, surveyTeardown := initAskStubber() defer surveyTeardown() diff --git a/git/git.go b/git/git.go index 496508f97..38a9a60bf 100644 --- a/git/git.go +++ b/git/git.go @@ -203,7 +203,7 @@ func ReadBranchConfig(branch string) (cfg BranchConfig) { return } -func DeleteBranch(branch string) error { +func DeleteLocalBranch(branch string) error { configCmd := GitCommand("branch", "-d", branch) _, err := run.PrepareCmd(configCmd).Output() return err diff --git a/test/helpers.go b/test/helpers.go index c8b0efe53..c2d4e2f37 100644 --- a/test/helpers.go +++ b/test/helpers.go @@ -68,6 +68,7 @@ func createStubbedPrepareCmd(cs *CmdStubber) func(*exec.Cmd) run.Runnable { if call >= len(cs.Stubs) { panic(fmt.Sprintf("more execs than stubs. most recent call: %v", cmd)) } + // fmt.Printf("Called stub for `%v`\n", cmd) // Helpful for debugging return cs.Stubs[call] } }