Add support for searching for custom columns as part of default searches (#286)

* Refactor code for searching for custom columns

* Add support for searching custom columns in default searches

* Add integration test for default searches for custom columns

* Add memoization to avoid repeated work for queries

* update comment

* Update golden

* Update goldens
This commit is contained in:
David Dworken
2025-01-19 00:31:14 -07:00
committed by GitHub
parent 8de80c510a
commit 567984fb6f
8 changed files with 114 additions and 70 deletions

View File

@ -353,31 +353,31 @@ func TestParseNonAtomizedToken(t *testing.T) {
ctx := hctx.MakeContext()
// Default
q, v1, v2, v3, err := parseNonAtomizedToken(ctx, "echo hello")
q, args, err := parseNonAtomizedToken(ctx, "echo hello")
require.NoError(t, err)
require.Equal(t, "(false OR command LIKE ? OR hostname LIKE ? OR current_working_directory LIKE ? )", q)
require.Equal(t, v1, "%echo hello%")
require.Equal(t, v2, "%echo hello%")
require.Equal(t, v3, "%echo hello%")
require.Len(t, args, 3)
require.Equal(t, args[0], "%echo hello%")
require.Equal(t, args[1], "%echo hello%")
require.Equal(t, args[2], "%echo hello%")
// Skipping cwd
config := hctx.GetConf(ctx)
config.DefaultSearchColumns = []string{"hostname", "command"}
q, v1, v2, v3, err = parseNonAtomizedToken(ctx, "echo hello")
config.DefaultSearchColumns = []string{"command", "hostname"}
q, args, err = parseNonAtomizedToken(ctx, "echo hello")
require.NoError(t, err)
require.Equal(t, "(false OR command LIKE ? OR hostname LIKE ? )", q)
require.Equal(t, v1, "%echo hello%")
require.Equal(t, v2, "%echo hello%")
require.Nil(t, v3)
require.Len(t, args, 2)
require.Equal(t, args[0], "%echo hello%")
require.Equal(t, args[1], "%echo hello%")
// Skipping cwd and hostname
config.DefaultSearchColumns = []string{"command"}
q, v1, v2, v3, err = parseNonAtomizedToken(ctx, "echo hello")
q, args, err = parseNonAtomizedToken(ctx, "echo hello")
require.NoError(t, err)
require.Equal(t, "(false OR command LIKE ? )", q)
require.Equal(t, v1, "%echo hello%")
require.Nil(t, v2)
require.Nil(t, v3)
require.Len(t, args, 1)
require.Equal(t, args[0], "%echo hello%")
}
func TestWhere(t *testing.T) {