@@ -61,6 +61,39 @@ func TestGetCommits(t *testing.T) {
61
61
expectedCommitOpts : []models.NewCommitOpts {},
62
62
expectedError : nil ,
63
63
},
64
+ {
65
+ testName : "should hide merge commits when HideMerges is true" ,
66
+ logOrder : "topo-order" ,
67
+ opts : GetCommitsOptions {RefName : "HEAD" , RefForPushedStatus : & models.Branch {Name : "mybranch" }, IncludeRebaseCommits : false , HideMerges : true },
68
+ runner : oscommands .NewFakeRunner (t ).
69
+ ExpectGitArgs ([]string {"rev-list" , "refs/heads/mybranch" , "^mybranch@{u}" }, "" , nil ).
70
+ ExpectGitArgs ([]string {"log" , "HEAD" , "--topo-order" , "--oneline" , "--no-merges" , "--pretty=format:+%H%x00%at%x00%aN%x00%ae%x00%P%x00%m%x00%D%x00%s" , "--abbrev=40" , "--no-show-signature" , "--" }, "" , nil ),
71
+
72
+ expectedCommitOpts : []models.NewCommitOpts {},
73
+ expectedError : nil ,
74
+ },
75
+ {
76
+ testName : "should not hide merge commits when HideMerges is false" ,
77
+ logOrder : "topo-order" ,
78
+ opts : GetCommitsOptions {RefName : "HEAD" , RefForPushedStatus : & models.Branch {Name : "mybranch" }, IncludeRebaseCommits : false , HideMerges : false },
79
+ runner : oscommands .NewFakeRunner (t ).
80
+ ExpectGitArgs ([]string {"rev-list" , "refs/heads/mybranch" , "^mybranch@{u}" }, "" , nil ).
81
+ ExpectGitArgs ([]string {"log" , "HEAD" , "--topo-order" , "--oneline" , "--pretty=format:+%H%x00%at%x00%aN%x00%ae%x00%P%x00%m%x00%D%x00%s" , "--abbrev=40" , "--no-show-signature" , "--" }, "" , nil ),
82
+
83
+ expectedCommitOpts : []models.NewCommitOpts {},
84
+ expectedError : nil ,
85
+ },
86
+ {
87
+ testName : "should hide merge commits when HideMerges is true with other options" ,
88
+ logOrder : "date-order" ,
89
+ opts : GetCommitsOptions {RefName : "HEAD" , RefForPushedStatus : & models.Branch {Name : "mybranch" }, IncludeRebaseCommits : false , HideMerges : true , All : true },
90
+ runner : oscommands .NewFakeRunner (t ).
91
+ ExpectGitArgs ([]string {"rev-list" , "refs/heads/mybranch" , "^mybranch@{u}" }, "" , nil ).
92
+ ExpectGitArgs ([]string {"log" , "HEAD" , "--date-order" , "--oneline" , "--all" , "--no-merges" , "--pretty=format:+%H%x00%at%x00%aN%x00%ae%x00%P%x00%m%x00%D%x00%s" , "--abbrev=40" , "--no-show-signature" , "--" }, "" , nil ),
93
+
94
+ expectedCommitOpts : []models.NewCommitOpts {},
95
+ expectedError : nil ,
96
+ },
64
97
{
65
98
testName : "should return commits if they are present" ,
66
99
logOrder : "topo-order" ,
@@ -72,12 +105,12 @@ func TestGetCommits(t *testing.T) {
72
105
// here it's actually getting all the commits in a formatted form, one per line
73
106
ExpectGitArgs ([]string {"log" , "HEAD" , "--topo-order" , "--oneline" , "--pretty=format:+%H%x00%at%x00%aN%x00%ae%x00%P%x00%m%x00%D%x00%s" , "--abbrev=40" , "--no-show-signature" , "--" }, commitsOutput , nil ).
74
107
// here it's testing which of the configured main branches have an upstream
75
- ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "master@{u}" }, "refs/remotes/origin/master" , nil ). // this one does
76
- ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "main@{u}" }, "" , errors .New ("error" )). // this one doesn't, so it checks origin instead
77
- ExpectGitArgs ([]string {"rev-parse" , "--verify" , "--quiet" , "refs/remotes/origin/main" }, "" , nil ). // yep, origin/main exists
78
- ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "develop@{u}" }, "" , errors .New ("error" )). // this one doesn't, so it checks origin instead
108
+ ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "master@{u}" }, "refs/remotes/origin/master" , nil ). // this one does
109
+ ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "main@{u}" }, "" , errors .New ("error" )). // this one doesn't, so it checks origin instead
110
+ ExpectGitArgs ([]string {"rev-parse" , "--verify" , "--quiet" , "refs/remotes/origin/main" }, "" , nil ). // yep, origin/main exists
111
+ ExpectGitArgs ([]string {"rev-parse" , "--symbolic-full-name" , "develop@{u}" }, "" , errors .New ("error" )). // this one doesn't, so it checks origin instead
79
112
ExpectGitArgs ([]string {"rev-parse" , "--verify" , "--quiet" , "refs/remotes/origin/develop" }, "" , errors .New ("error" )). // doesn't exist there, either, so it checks for a local branch
80
- ExpectGitArgs ([]string {"rev-parse" , "--verify" , "--quiet" , "refs/heads/develop" }, "" , errors .New ("error" )). // no local branch either
113
+ ExpectGitArgs ([]string {"rev-parse" , "--verify" , "--quiet" , "refs/heads/develop" }, "" , errors .New ("error" )). // no local branch either
81
114
// here it's seeing which of our commits are not on any of the main branches yet
82
115
ExpectGitArgs ([]string {"rev-list" , "HEAD" , "^refs/remotes/origin/master" , "^refs/remotes/origin/main" },
83
116
"0eea75e8c631fba6b58135697835d58ba4c18dbc\n b21997d6b4cbdf84b149d8e6a2c4d06a8e9ec164\n e94e8fc5b6fab4cb755f29f1bdb3ee5e001df35c\n d8084cd558925eb7c9c38afeed5725c21653ab90\n 65f910ebd85283b5cce9bf67d03d3f1a9ea3813a\n " , nil ),
0 commit comments