@@ -106,6 +106,40 @@ func TestFilterRolloverTasks(t *testing.T) {
106106 }
107107}
108108
109+ func TestGetStatusOrder (t * testing.T ) {
110+ tests := []struct {
111+ name string
112+ status enums.TaskStatus
113+ want int
114+ }{
115+ {"started is first" , enums .Started , 0 },
116+ {"pending is second" , enums .Pending , 1 },
117+ {"abandoned is third" , enums .Abandoned , 2 },
118+ {"complete is last" , enums .Complete , 3 },
119+ {"unknown status returns 4" , enums .TaskStatus (99 ), 4 },
120+ }
121+
122+ for _ , tt := range tests {
123+ t .Run (tt .name , func (t * testing.T ) {
124+ got := getStatusOrder (tt .status )
125+ if got != tt .want {
126+ t .Errorf ("getStatusOrder(%d) = %d, want %d" , tt .status , got , tt .want )
127+ }
128+ })
129+ }
130+
131+ // Verify relative ordering: Started < Pending < Abandoned < Complete
132+ if getStatusOrder (enums .Started ) >= getStatusOrder (enums .Pending ) {
133+ t .Error ("Started should sort before Pending" )
134+ }
135+ if getStatusOrder (enums .Pending ) >= getStatusOrder (enums .Abandoned ) {
136+ t .Error ("Pending should sort before Abandoned" )
137+ }
138+ if getStatusOrder (enums .Abandoned ) >= getStatusOrder (enums .Complete ) {
139+ t .Error ("Abandoned should sort before Complete" )
140+ }
141+ }
142+
109143func TestFindMostRecentFile (t * testing.T ) {
110144 tests := []struct {
111145 name string
0 commit comments