mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-14 17:51:44 +03:00
cache: make the title filter case insensitive
This commit is contained in:
parent
0e5550a27b
commit
408654514e
9
cache/filter.go
vendored
9
cache/filter.go
vendored
@ -55,10 +55,13 @@ func LabelFilter(label string) Filter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TitleFilter return a Filter that match if the title contains the given pattern
|
// TitleFilter return a Filter that match if the title contains the given query
|
||||||
func TitleFilter(title string) Filter {
|
func TitleFilter(query string) Filter {
|
||||||
return func(repo *RepoCache, excerpt *BugExcerpt) bool {
|
return func(repo *RepoCache, excerpt *BugExcerpt) bool {
|
||||||
return strings.Contains(excerpt.Title, title)
|
return strings.Contains(
|
||||||
|
strings.ToLower(excerpt.Title),
|
||||||
|
strings.ToLower(query),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
34
cache/filter_test.go
vendored
Normal file
34
cache/filter_test.go
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package cache
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestTitleFilter(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
title string
|
||||||
|
query string
|
||||||
|
match bool
|
||||||
|
}{
|
||||||
|
{name: "complete match", title: "hello world", query: "hello world", match: true},
|
||||||
|
{name: "partial match", title: "hello world", query: "hello", match: true},
|
||||||
|
{name: "no match", title: "hello world", query: "foo", match: false},
|
||||||
|
{name: "cased title", title: "Hello World", query: "hello", match: true},
|
||||||
|
{name: "cased query", title: "hello world", query: "Hello", match: true},
|
||||||
|
|
||||||
|
// Those following tests should work eventually but are left for a future iteration.
|
||||||
|
|
||||||
|
// {name: "cased accents", title: "ÑOÑO", query: "ñoño", match: true},
|
||||||
|
// {name: "natural language matching", title: "Århus", query: "Aarhus", match: true},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
filter := TitleFilter(tt.query)
|
||||||
|
excerpt := &BugExcerpt{Title: tt.title}
|
||||||
|
assert.Equal(t, tt.match, filter(nil, excerpt))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -34,6 +34,10 @@ You can pass an additional query to filter and order the list. This query can be
|
|||||||
\fB\-l\fP, \fB\-\-label\fP=[]
|
\fB\-l\fP, \fB\-\-label\fP=[]
|
||||||
Filter by label
|
Filter by label
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fB\-t\fP, \fB\-\-title\fP=[]
|
||||||
|
Filter by title
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
\fB\-n\fP, \fB\-\-no\fP=[]
|
\fB\-n\fP, \fB\-\-no\fP=[]
|
||||||
Filter by absence of something. Valid values are [label]
|
Filter by absence of something. Valid values are [label]
|
||||||
|
@ -29,6 +29,7 @@ git bug ls --status closed --by creation
|
|||||||
-s, --status strings Filter by status. Valid values are [open,closed]
|
-s, --status strings Filter by status. Valid values are [open,closed]
|
||||||
-a, --author strings Filter by author
|
-a, --author strings Filter by author
|
||||||
-l, --label strings Filter by label
|
-l, --label strings Filter by label
|
||||||
|
-t, --title strings Filter by title
|
||||||
-n, --no strings Filter by absence of something. Valid values are [label]
|
-n, --no strings Filter by absence of something. Valid values are [label]
|
||||||
-b, --by string Sort the results by a characteristic. Valid values are [id,creation,edit] (default "creation")
|
-b, --by string Sort the results by a characteristic. Valid values are [id,creation,edit] (default "creation")
|
||||||
-d, --direction string Select the sorting direction. Valid values are [asc,desc] (default "asc")
|
-d, --direction string Select the sorting direction. Valid values are [asc,desc] (default "asc")
|
||||||
|
@ -535,6 +535,9 @@ _git-bug_ls()
|
|||||||
flags+=("--label=")
|
flags+=("--label=")
|
||||||
two_word_flags+=("-l")
|
two_word_flags+=("-l")
|
||||||
local_nonpersistent_flags+=("--label=")
|
local_nonpersistent_flags+=("--label=")
|
||||||
|
flags+=("--title=")
|
||||||
|
two_word_flags+=("-t")
|
||||||
|
local_nonpersistent_flags+=("--title=")
|
||||||
flags+=("--no=")
|
flags+=("--no=")
|
||||||
two_word_flags+=("-n")
|
two_word_flags+=("-n")
|
||||||
local_nonpersistent_flags+=("--no=")
|
local_nonpersistent_flags+=("--no=")
|
||||||
|
Loading…
Reference in New Issue
Block a user