feat: trim whitespace and handle empty entries for creator usernames in task filters

This commit is contained in:
benshi 2026-06-18 03:12:25 +00:00
parent 66b8ee4f18
commit 72c38456ff
2 changed files with 26 additions and 1 deletions

View File

@ -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
}

View File

@ -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")