@@ -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