From e19c7e1b50ce1b7ea59d2522b2821be846d8c152 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Sat, 28 Nov 2020 10:52:00 -0500 Subject: [PATCH] mr: Add approve and unapprove tests Add tests for the 'lab mr approve' and 'lab mr unapprove' command. Also, remove capital 'U' on unapproved message. Signed-off-by: Prarit Bhargava --- cmd/mr_approve_test.go | 64 ++++++++++++++++++++++++++++++++++++++++++ cmd/mr_test.go | 31 -------------------- cmd/mr_unapprove.go | 2 +- 3 files changed, 65 insertions(+), 32 deletions(-) create mode 100644 cmd/mr_approve_test.go diff --git a/cmd/mr_approve_test.go b/cmd/mr_approve_test.go new file mode 100644 index 00000000..c871c6c8 --- /dev/null +++ b/cmd/mr_approve_test.go @@ -0,0 +1,64 @@ +package cmd + +import ( + "os/exec" + "testing" + + "github.com/acarl005/stripansi" + "github.com/stretchr/testify/require" +) + +// https://gitlab.com/zaquestion/test/-/merge_requests/18 was opened for these +// tests + +func Test_mrApproveSetup(t *testing.T) { + t.Parallel() + repo := copyTestRepo(t) + orig := exec.Command(labBinaryPath, "mr", "show", "18") + orig.Dir = repo + + b, err := orig.CombinedOutput() + if err != nil { + t.Log(string(b)) + t.Error(err) + } + + origOutput := string(b) + origOutput = stripansi.Strip(origOutput) + + require.Contains(t, origOutput, `Approved By: None`) +} + +func Test_mrApprove(t *testing.T) { + repo := copyTestRepo(t) + orig := exec.Command(labBinaryPath, "mr", "approve", "18") + orig.Dir = repo + + b, err := orig.CombinedOutput() + if err != nil { + t.Log(string(b)) + t.Error(err) + } + + origOutput := string(b) + origOutput = stripansi.Strip(origOutput) + + require.Contains(t, origOutput, `Merge Request #18 approved`) +} + +func Test_mrUnapprove(t *testing.T) { + repo := copyTestRepo(t) + orig := exec.Command(labBinaryPath, "mr", "unapprove", "18") + orig.Dir = repo + + b, err := orig.CombinedOutput() + if err != nil { + t.Log(string(b)) + t.Error(err) + } + + origOutput := string(b) + origOutput = stripansi.Strip(origOutput) + + require.Contains(t, origOutput, `Merge Request #18 unapproved`) +} diff --git a/cmd/mr_test.go b/cmd/mr_test.go index 0013c4e1..4f4e8fef 100644 --- a/cmd/mr_test.go +++ b/cmd/mr_test.go @@ -76,37 +76,6 @@ func Test_mrCmd(t *testing.T) { require.Contains(t, outStripped, "mr description") require.Contains(t, out, fmt.Sprintf("WebURL: https://gitlab.com/lab-testing/test/-/merge_requests/%s", mrID)) }) - // Users cannot approve and unapprove their own MRs. Comment out - // these tests for now until a better solution can be found. - // - //t.Run("approve", func(t *testing.T) { - // if mrID == "" { - // t.Skip("mrID is empty, create likely failed") - // } - // cmd := exec.Command(labBinaryPath, "mr", "lab-testing", "approve", mrID) - // cmd.Dir = repo - // - // //b, err := cmd.CombinedOutput() - // if err != nil { - // t.Log(string(b)) - // t.Fatal(err) - // } - // require.Contains(t, string(b), fmt.Sprintf("Merge Request #%s approved", mrID)) - //}) - //t.Run("unapprove", func(t *testing.T) { - // if mrID == "" { - // t.Skip("mrID is empty, create likely failed") - // } - // cmd := exec.Command(labBinaryPath, "mr", "lab-testing", "unapprove", mrID) - // cmd.Dir = repo - // - // b, err := cmd.CombinedOutput() - // if err != nil { - // t.Log(string(b)) - // t.Fatal(err) - // } - // require.Contains(t, string(b), fmt.Sprintf("Merge Request #%s unapproved", mrID)) - //}) t.Run("delete", func(t *testing.T) { if mrID == "" { t.Skip("mrID is empty, create likely failed") diff --git a/cmd/mr_unapprove.go b/cmd/mr_unapprove.go index 7a7bc39b..8bac1b11 100644 --- a/cmd/mr_unapprove.go +++ b/cmd/mr_unapprove.go @@ -55,7 +55,7 @@ var mrUnapproveCmd = &cobra.Command{ if err != nil { log.Fatal(err) } - fmt.Printf("Merge Request #%d Unapproved\n", id) + fmt.Printf("Merge Request #%d unapproved\n", id) }, }