feat: trim whitespace and handle empty entries for creator usernames in task filters
This commit is contained in:
parent
66b8ee4f18
commit
72c38456ff
|
|
@ -362,7 +362,14 @@ func getNativeValueForTaskField(fieldName string, comparator taskFilterComparato
|
|||
|
||||
if realFieldName == "Assignees" || realFieldName == "Creator" {
|
||||
vals := strings.Split(value, ",")
|
||||
valueSlice := append([]string{}, vals...)
|
||||
valueSlice := make([]string, 0, len(vals))
|
||||
for _, val := range vals {
|
||||
val = strings.TrimSpace(val)
|
||||
if val == "" {
|
||||
continue
|
||||
}
|
||||
valueSlice = append(valueSlice, val)
|
||||
}
|
||||
return nil, valueSlice, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -238,6 +238,24 @@ func TestParseFilter(t *testing.T) {
|
|||
assert.Equal(t, taskFilterComparatorIn, result[0].comparator)
|
||||
assert.Equal(t, []string{"user1", "user6"}, result[0].value)
|
||||
})
|
||||
t.Run("creator usernames are trimmed of surrounding whitespace", func(t *testing.T) {
|
||||
result, err := getTaskFiltersFromFilterString("creator in 'user1, user6'", "UTC")
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Len(t, result, 1)
|
||||
assert.Equal(t, "creator", result[0].field)
|
||||
assert.Equal(t, taskFilterComparatorIn, result[0].comparator)
|
||||
assert.Equal(t, []string{"user1", "user6"}, result[0].value)
|
||||
})
|
||||
t.Run("creator usernames drop empty entries from stray commas", func(t *testing.T) {
|
||||
result, err := getTaskFiltersFromFilterString("creator in 'user1, , user6,'", "UTC")
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Len(t, result, 1)
|
||||
assert.Equal(t, "creator", result[0].field)
|
||||
assert.Equal(t, taskFilterComparatorIn, result[0].comparator)
|
||||
assert.Equal(t, []string{"user1", "user6"}, result[0].value)
|
||||
})
|
||||
t.Run("less than or equal comparator", func(t *testing.T) {
|
||||
result, err := getTaskFiltersFromFilterString("percent_done <= 50", "UTC")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue