Download internal/shellconfig/hook_test.go from SaylorTwift/crush: direct link, hf CLI and curl.
- Browser
- Download file 1.4 kB
-
https://huggingface.co/SaylorTwift/crush/resolve/main/internal/shellconfig/hook_test.go
- Command line
-
hf download hf://SaylorTwift/crush/internal/shellconfig/hook_test.go
-
curl -L -o hook_test.go https://huggingface.co/SaylorTwift/crush/resolve/main/internal/shellconfig/hook_test.go
1.4 kB
| package shellconfig | |
| import ( | |
| "testing" | |
| "github.com/stretchr/testify/require" | |
| ) | |
| func TestHookRemoveByName(t *testing.T) { | |
| t.Parallel() | |
| result := loadScript(t, `hook add PreToolUse --command "echo fmt" --name fmt | |
| hook add PreToolUse --command "echo lint" --name lint | |
| hook remove PreToolUse --name fmt`) | |
| arr := result["hooks"].(map[string]any)["PreToolUse"].([]any) | |
| require.Len(t, arr, 1) | |
| require.Equal(t, "lint", arr[0].(map[string]any)["name"]) | |
| } | |
| func TestHookRemoveByNameAlias(t *testing.T) { | |
| t.Parallel() | |
| result := loadScript(t, `hook add PreToolUse --command "echo fmt" --name fmt | |
| hook add PreToolUse --command "echo lint" --name lint | |
| hook rm PreToolUse --name lint`) | |
| arr := result["hooks"].(map[string]any)["PreToolUse"].([]any) | |
| require.Len(t, arr, 1) | |
| require.Equal(t, "fmt", arr[0].(map[string]any)["name"]) | |
| } | |
| func TestHookClearEvent(t *testing.T) { | |
| t.Parallel() | |
| result := loadScript(t, `hook add PreToolUse --command "echo a" --name a | |
| hook add PreToolUse --command "echo b" --name b | |
| hook remove PreToolUse`) | |
| hooks := result["hooks"].(map[string]any) | |
| require.NotContains(t, hooks, "PreToolUse") | |
| } | |
| func TestHookAddRequiresCommand(t *testing.T) { | |
| t.Parallel() | |
| path := t.TempDir() + "/crushrc" | |
| _, err := LoadShellConfig(t.Context(), path, []byte(`hook add PreToolUse --name x`)) | |
| require.Error(t, err) | |
| require.Contains(t, err.Error(), "--command is required") | |
| } | |