Skip to content

Commit

Permalink
mr_discussion_test: Add tests for commit comments
Browse files Browse the repository at this point in the history
Add test for commenting on commits.

Signed-off-by: Prarit Bhargava <[email protected]>
  • Loading branch information
prarit committed Feb 22, 2022
1 parent f3faa3b commit 54a8737
Showing 1 changed file with 131 additions and 0 deletions.
131 changes: 131 additions & 0 deletions cmd/mr_discussion_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package cmd

import (
"bufio"
"io/ioutil"
"os/exec"
"path/filepath"
"strings"
"testing"

"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -88,3 +90,132 @@ func Test_mrDiscussionText(t *testing.T) {
# This thread is being started on OPEN Merge Request 1701.
# Comment lines beginning with '#' are discarded.`, text)
}

// test !1159 is reserved for testing commit comments
var mrDiscussionCommitMRid = "1159"

func mrDiscussionShow(t *testing.T, repo string) string {
cmd := exec.Command(labBinaryPath, "mr", "show", mrDiscussionCommitMRid, "--comments", "--no-pager")
cmd.Dir = repo

a, err := cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}

return string(a)
}

func mrDiscussionCommitCommentCleanup(t *testing.T, repo string) {

showText := mrDiscussionShow(t, repo)

scanner := bufio.NewScanner(strings.NewReader(showText))
for scanner.Scan() {
line := scanner.Text()
if !strings.HasPrefix(line, "#") {
continue
}
// lab mr edit 1159:<id> --delete-note
commentid := strings.Split(line, ": ")[0][1:]
cmd := exec.Command(labBinaryPath, "mr", "edit", mrDiscussionCommitMRid+":"+commentid, "--delete-note")
cmd.Dir = repo

a, err := cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}
}
}

func Test_mrDiscussionCommitComments(t *testing.T) {
var testCommitID = "538c74715661e04fd4ffffcb72a04b6da969f8dd"

repo := copyTestRepo(t)

mrDiscussionCommitCommentCleanup(t, repo)

showText := mrDiscussionShow(t, repo)
require.NotContains(t, showText, "old line 3")
require.NotContains(t, showText, "context line 5")
require.NotContains(t, showText, "new line 8")

cmd := exec.Command(labBinaryPath, "mr", "checkout", mrDiscussionCommitMRid)
cmd.Dir = repo

a, err := cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}

//lab mr discussion 1159 --commit 538c74715661e04fd4ffffcb72a04b6da969f8dd --position=test:-3,3 -m "old line 3"
cmd = exec.Command(labBinaryPath, "mr", "discussion", mrDiscussionCommitMRid, "--commit", testCommitID, "--position=test:-3,3", "-m", "old line 3")
cmd.Dir = repo

a, err = cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}

showText = mrDiscussionShow(t, repo)
require.Contains(t, showText, "old line 3")
require.Contains(t, showText, `
commit:538c74715661e04fd4ffffcb72a04b6da969f8dd
File:test
| @@ -1,9 +1,11 @@
| 1 1 line 1
| 2 2 line 2
| 3 -line 3`)
require.NotContains(t, showText, "context line 5")
require.NotContains(t, showText, "new line 8")

//lab mr discussion 1159 --commit 538c74715661e04fd4ffffcb72a04b6da969f8dd --position=test:\ 5,4 -m "context line 5"
cmd = exec.Command(labBinaryPath, "mr", "discussion", mrDiscussionCommitMRid, "--commit", testCommitID, "--position=test: 5,4", "-m", "context line 5")
cmd.Dir = repo

a, err = cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}

showText = mrDiscussionShow(t, repo)
require.Contains(t, showText, "context line 5")
require.Contains(t, showText, `
commit:538c74715661e04fd4ffffcb72a04b6da969f8dd
File:test
| @@ -1,9 +1,11 @@
| 1 1 line 1
| 2 2 line 2
| 3 -line 3
| 4 3 line 4
| 5 4 line 5`)
require.NotContains(t, showText, "new line 8")

//lab mr discussion 1159 --commit 538c74715661e04fd4ffffcb72a04b6da969f8dd --position=test:+8,8 -m "new line 8"
cmd = exec.Command(labBinaryPath, "mr", "discussion", mrDiscussionCommitMRid, "--commit", testCommitID, "--position=test:+8,8", "-m", "new line 8")
cmd.Dir = repo

a, err = cmd.CombinedOutput()
if err != nil {
t.Log(string(a))
t.Fatal(err)
}

showText = mrDiscussionShow(t, repo)
require.Contains(t, showText, "new line 8")
require.Contains(t, showText, `
commit:538c74715661e04fd4ffffcb72a04b6da969f8dd
File:test
| 5 4 line 5
| 6 5 line 6
| 7 6 line 7
| 8 -line 8
| 9 7 line 9
| 8 +line 10`)
mrDiscussionCommitCommentCleanup(t, repo)
}

0 comments on commit 54a8737

Please sign in to comment.