@@ -80,6 +80,10 @@ type detachedContext struct {
8080 tagName string
8181 cherryPick bool
8282 cherryPickSHA string
83+ revert bool
84+ revertSHA string
85+ sequencer bool
86+ sequencerTodo string
8387 merge bool
8488 mergeHEAD string
8589 status string
@@ -97,8 +101,12 @@ func setupHEADContextEnv(context *detachedContext) *git {
97101 env .On ("getFileContent" , "/rebase-apply/last" ).Return (context .total )
98102 env .On ("getFileContent" , "/rebase-apply/head-name" ).Return (context .origin )
99103 env .On ("getFileContent" , "/CHERRY_PICK_HEAD" ).Return (context .cherryPickSHA )
104+ env .On ("getFileContent" , "/REVERT_HEAD" ).Return (context .revertSHA )
100105 env .On ("getFileContent" , "/MERGE_MSG" ).Return (fmt .Sprintf ("Merge branch '%s' into %s" , context .mergeHEAD , context .onto ))
101106 env .On ("hasFilesInDir" , "" , "CHERRY_PICK_HEAD" ).Return (context .cherryPick )
107+ env .On ("hasFilesInDir" , "" , "REVERT_HEAD" ).Return (context .revert )
108+ env .On ("hasFolder" , "sequencer" ).Return (context .sequencer )
109+ env .On ("getFileContent" , "/sequencer/todo" ).Return (context .sequencerTodo )
102110 env .On ("hasFilesInDir" , "" , "MERGE_MSG" ).Return (context .merge )
103111 env .On ("hasFilesInDir" , "" , "MERGE_HEAD" ).Return (context .merge )
104112 env .mockGitCommand (context .currentCommit , "rev-parse" , "--short" , "HEAD" )
@@ -211,6 +219,84 @@ func TestGetGitHEADContextCherryPickOnTag(t *testing.T) {
211219 assert .Equal (t , want , got )
212220}
213221
222+ func TestGetGitHEADContextRevertOnBranch (t * testing.T ) {
223+ want := "\uf0e2 pickme onto \ue0a0 main"
224+ context := & detachedContext {
225+ currentCommit : "whatever" ,
226+ branchName : "main" ,
227+ revert : true ,
228+ revertSHA : "pickme" ,
229+ }
230+ g := setupHEADContextEnv (context )
231+ got := g .getGitHEADContext ("main" )
232+ assert .Equal (t , want , got )
233+ }
234+
235+ func TestGetGitHEADContextRevertOnTag (t * testing.T ) {
236+ want := "\uf0e2 pickme onto \uf412 v3.4.6"
237+ context := & detachedContext {
238+ currentCommit : "whatever" ,
239+ tagName : "v3.4.6" ,
240+ revert : true ,
241+ revertSHA : "pickme" ,
242+ }
243+ g := setupHEADContextEnv (context )
244+ got := g .getGitHEADContext ("" )
245+ assert .Equal (t , want , got )
246+ }
247+
248+ func TestGetGitHEADContextSequencerCherryPickOnBranch (t * testing.T ) {
249+ want := "\ue29b pickme onto \ue0a0 main"
250+ context := & detachedContext {
251+ currentCommit : "whatever" ,
252+ branchName : "main" ,
253+ sequencer : true ,
254+ sequencerTodo : "pick pickme" ,
255+ }
256+ g := setupHEADContextEnv (context )
257+ got := g .getGitHEADContext ("main" )
258+ assert .Equal (t , want , got )
259+ }
260+
261+ func TestGetGitHEADContextSequencerCherryPickOnTag (t * testing.T ) {
262+ want := "\ue29b pickme onto \uf412 v3.4.6"
263+ context := & detachedContext {
264+ currentCommit : "whatever" ,
265+ tagName : "v3.4.6" ,
266+ sequencer : true ,
267+ sequencerTodo : "pick pickme" ,
268+ }
269+ g := setupHEADContextEnv (context )
270+ got := g .getGitHEADContext ("" )
271+ assert .Equal (t , want , got )
272+ }
273+
274+ func TestGetGitHEADContextSequencerRevertOnBranch (t * testing.T ) {
275+ want := "\ue29b pickme onto \ue0a0 main"
276+ context := & detachedContext {
277+ currentCommit : "whatever" ,
278+ branchName : "main" ,
279+ sequencer : true ,
280+ sequencerTodo : "revert pickme" ,
281+ }
282+ g := setupHEADContextEnv (context )
283+ got := g .getGitHEADContext ("main" )
284+ assert .Equal (t , want , got )
285+ }
286+
287+ func TestGetGitHEADContextSequencerRevertOnTag (t * testing.T ) {
288+ want := "\ue29b pickme onto \uf412 v3.4.6"
289+ context := & detachedContext {
290+ currentCommit : "whatever" ,
291+ tagName : "v3.4.6" ,
292+ sequencer : true ,
293+ sequencerTodo : "revert pickme" ,
294+ }
295+ g := setupHEADContextEnv (context )
296+ got := g .getGitHEADContext ("" )
297+ assert .Equal (t , want , got )
298+ }
299+
214300func TestGetGitHEADContextMerge (t * testing.T ) {
215301 want := "\ue727 \ue0a0 feat into \ue0a0 main"
216302 context := & detachedContext {
0 commit comments