1
0
mirror of https://github.com/go-task/task.git synced 2025-06-02 23:27:37 +02:00

feat: create NoSort sorter for CLI sort option "none" (#2125)

This commit is contained in:
Timothy Rule 2025-03-16 14:17:14 +01:00 committed by GitHub
parent b68f4067d9
commit 532644d7f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 38 additions and 1 deletions

View File

@ -184,7 +184,7 @@ func WithExecutorOptions() task.ExecutorOption {
var sorter sort.Sorter
switch TaskSort {
case "none":
sorter = nil
sorter = sort.NoSort
case "alphanumeric":
sorter = sort.AlphaNumeric
}

View File

@ -9,6 +9,11 @@ import (
// A Sorter is any function that sorts a set of tasks.
type Sorter func(items []string, namespaces []string) []string
// NoSort leaves the tasks in the order they are defined.
func NoSort(items []string, namespaces []string) []string {
return items
}
// AlphaNumeric sorts the JSON output so that tasks are in alpha numeric order
// by task name.
func AlphaNumeric(items []string, namespaces []string) []string {

View File

@ -79,3 +79,35 @@ func TestAlphaNumeric_Sort(t *testing.T) {
})
}
}
func TestNoSort_Sort(t *testing.T) {
t.Parallel()
item1 := "a-item1"
item2 := "m-item2"
item3 := "ns1:item3"
item4 := "ns2:item4"
item5 := "z-item5"
item6 := "ns3:item6"
tests := []struct {
name string
items []string
want []string
}{
{
name: "all items in order of definition",
items: []string{item3, item2, item5, item1, item4, item6},
want: []string{item3, item2, item5, item1, item4, item6},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
NoSort(tt.items, nil)
assert.Equal(t, tt.want, tt.items)
})
}
}