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:
parent
b68f4067d9
commit
532644d7f8
@ -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
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user