From cb61245078a0e8f14e359ed20e0582a695645a08 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sun, 14 Feb 2021 16:03:51 +0100 Subject: Add ability to search by arbitrary metadata Example: ~/git/git-bug/git-bug ls --metadata github-url=https://github.com/author/myproject/issues/42 or ~/git/git-bug/git-bug ls metadata:github-url:\"https://github.com/author/myproject/issues/42\" Fixes the cmdline part of . --- query/parser_test.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'query/parser_test.go') diff --git a/query/parser_test.go b/query/parser_test.go index 87dd870a..6d91d6cc 100644 --- a/query/parser_test.go +++ b/query/parser_test.go @@ -84,6 +84,11 @@ func TestParse(t *testing.T) { OrderDirection: OrderDescending, }, }, + + // Metadata + {`metadata:key:"https://www.example.com/"`, &Query{ + Filters: Filters{Metadata: []StringPair{{"key", "https://www.example.com/"}}}, + }}, } for _, tc := range tests { -- cgit From fab626a7a663a8fa6ef27848bb63e91af812ab8c Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Sat, 27 Feb 2021 20:31:10 +0100 Subject: query: refactor to reuse the split function for both query and token --- query/parser_test.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'query/parser_test.go') diff --git a/query/parser_test.go b/query/parser_test.go index 6d91d6cc..cef01ffd 100644 --- a/query/parser_test.go +++ b/query/parser_test.go @@ -3,7 +3,7 @@ package query import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/MichaelMure/git-bug/bug" ) @@ -62,6 +62,11 @@ func TestParse(t *testing.T) { }}, {"sort:unknown", nil}, + // KVV + {`metadata:key:"https://www.example.com/"`, &Query{ + Filters: Filters{Metadata: []StringPair{{"key", "https://www.example.com/"}}}, + }}, + // Search {"search", &Query{ Search: []string{"search"}, @@ -84,28 +89,23 @@ func TestParse(t *testing.T) { OrderDirection: OrderDescending, }, }, - - // Metadata - {`metadata:key:"https://www.example.com/"`, &Query{ - Filters: Filters{Metadata: []StringPair{{"key", "https://www.example.com/"}}}, - }}, } for _, tc := range tests { t.Run(tc.input, func(t *testing.T) { query, err := Parse(tc.input) if tc.output == nil { - assert.Error(t, err) - assert.Nil(t, query) + require.Error(t, err) + require.Nil(t, query) } else { - assert.NoError(t, err) + require.NoError(t, err) if tc.output.OrderBy != 0 { - assert.Equal(t, tc.output.OrderBy, query.OrderBy) + require.Equal(t, tc.output.OrderBy, query.OrderBy) } if tc.output.OrderDirection != 0 { - assert.Equal(t, tc.output.OrderDirection, query.OrderDirection) + require.Equal(t, tc.output.OrderDirection, query.OrderDirection) } - assert.Equal(t, tc.output.Filters, query.Filters) + require.Equal(t, tc.output.Filters, query.Filters) } }) } -- cgit