mirror of
https://github.com/ddworken/hishtory.git
synced 2025-08-13 08:47:20 +02:00
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:
@ -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) {
|
||||
|
Reference in New Issue
Block a user