mirror of
https://github.com/go-task/task.git
synced 2025-06-04 23:38:05 +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
|
var sorter sort.Sorter
|
||||||
switch TaskSort {
|
switch TaskSort {
|
||||||
case "none":
|
case "none":
|
||||||
sorter = nil
|
sorter = sort.NoSort
|
||||||
case "alphanumeric":
|
case "alphanumeric":
|
||||||
sorter = sort.AlphaNumeric
|
sorter = sort.AlphaNumeric
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,11 @@ import (
|
|||||||
// A Sorter is any function that sorts a set of tasks.
|
// A Sorter is any function that sorts a set of tasks.
|
||||||
type Sorter func(items []string, namespaces []string) []string
|
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
|
// AlphaNumeric sorts the JSON output so that tasks are in alpha numeric order
|
||||||
// by task name.
|
// by task name.
|
||||||
func AlphaNumeric(items []string, namespaces []string) []string {
|
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