@@ -61,6 +61,39 @@ func TestGetCommits(t *testing.T) {
6161 expectedCommitOpts : []models.NewCommitOpts {},
6262 expectedError : nil ,
6363 },
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+ },
6497 {
6598 testName : "should return commits if they are present" ,
6699 logOrder : "topo-order" ,
@@ -72,12 +105,12 @@ func TestGetCommits(t *testing.T) {
72105 // here it's actually getting all the commits in a formatted form, one per line
73106 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 ).
74107 // 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
79112 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
81114 // here it's seeing which of our commits are not on any of the main branches yet
82115 ExpectGitArgs ([]string {"rev-list" , "HEAD" , "^refs/remotes/origin/master" , "^refs/remotes/origin/main" },
83116 "0eea75e8c631fba6b58135697835d58ba4c18dbc\n b21997d6b4cbdf84b149d8e6a2c4d06a8e9ec164\n e94e8fc5b6fab4cb755f29f1bdb3ee5e001df35c\n d8084cd558925eb7c9c38afeed5725c21653ab90\n 65f910ebd85283b5cce9bf67d03d3f1a9ea3813a\n " , nil ),
0 commit comments