@@ -1035,6 +1035,7 @@ func TestSync_Prune_DeletesMergedBranches(t *testing.T) {
10351035 writeStackFile (t , tmpDir , s )
10361036
10371037 var deletedBranches []string
1038+ var deletedTrackingRefs []string
10381039
10391040 mock := newSyncMock (tmpDir , "b2" )
10401041 mock .BranchExistsFn = func (name string ) bool { return true }
@@ -1043,6 +1044,10 @@ func TestSync_Prune_DeletesMergedBranches(t *testing.T) {
10431044 assert .True (t , force , "should force-delete merged branch" )
10441045 return nil
10451046 }
1047+ mock .DeleteTrackingRefFn = func (remote , branch string ) error {
1048+ deletedTrackingRefs = append (deletedTrackingRefs , remote + "/" + branch )
1049+ return nil
1050+ }
10461051
10471052 restore := git .SetOps (mock )
10481053 defer restore ()
@@ -1060,6 +1065,7 @@ func TestSync_Prune_DeletesMergedBranches(t *testing.T) {
10601065
10611066 assert .NoError (t , err )
10621067 assert .Equal (t , []string {"b1" }, deletedBranches )
1068+ assert .Equal (t , []string {"origin/b1" }, deletedTrackingRefs , "should delete remote-tracking ref for pruned branch" )
10631069 assert .Contains (t , output , "Pruned b1 (merged)" )
10641070 assert .Contains (t , output , "Pruned 1 merged branch" )
10651071}
@@ -1087,6 +1093,12 @@ func TestSync_Prune_SkipsNonExistentBranches(t *testing.T) {
10871093 return nil
10881094 }
10891095
1096+ var deletedTrackingRefs []string
1097+ mock .DeleteTrackingRefFn = func (remote , branch string ) error {
1098+ deletedTrackingRefs = append (deletedTrackingRefs , remote + "/" + branch )
1099+ return nil
1100+ }
1101+
10901102 restore := git .SetOps (mock )
10911103 defer restore ()
10921104
@@ -1103,6 +1115,8 @@ func TestSync_Prune_SkipsNonExistentBranches(t *testing.T) {
11031115
11041116 assert .NoError (t , err )
11051117 assert .Contains (t , output , "No merged branches to prune" )
1118+ // Tracking ref should still be cleaned up even though local branch is gone
1119+ assert .Equal (t , []string {"origin/b1" }, deletedTrackingRefs , "should delete tracking ref even when local branch is already gone" )
11061120}
11071121
11081122// TestSync_Prune_SwitchesToLowestUnmergedBranch verifies that when the user is
0 commit comments