summaryrefslogtreecommitdiff
path: root/internal/hexaiaction/action_handler_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-19 08:40:55 +0300
committerPaul Buetow <paul@buetow.org>2026-06-19 08:40:55 +0300
commit42013b111a3dadd603b423a0bcc4bcbd02da2add (patch)
treefd1c3dbdccc0298ee11961f115a14fe18a1be9c5 /internal/hexaiaction/action_handler_test.go
parent8dbec6969ceff32662c41bd267210c34b90d8810 (diff)
Harden action handler registration for nk0
Diffstat (limited to 'internal/hexaiaction/action_handler_test.go')
-rw-r--r--internal/hexaiaction/action_handler_test.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/hexaiaction/action_handler_test.go b/internal/hexaiaction/action_handler_test.go
index 1d811fe..92df3b1 100644
--- a/internal/hexaiaction/action_handler_test.go
+++ b/internal/hexaiaction/action_handler_test.go
@@ -55,6 +55,10 @@ func TestActionHandlerRegistryRejectsInvalidRegistrations(t *testing.T) {
"nil handler": func(registry *actionHandlerRegistry) {
registry.register(ActionKind("nil"), nil)
},
+ "typed nil handler": func(registry *actionHandlerRegistry) {
+ var handler actionHandlerFunc
+ registry.register(ActionKind("typed-nil"), handler)
+ },
"duplicate kind": func(registry *actionHandlerRegistry) {
registry.register(ActionKind("dup"), actionHandlerFunc(handleSkipAction))
registry.register(ActionKind("dup"), actionHandlerFunc(handleSkipAction))
@@ -85,3 +89,14 @@ func TestActionHandlerRegistryNilPanicNamesKind(t *testing.T) {
}()
newActionHandlerRegistry().register(ActionCustom, nil)
}
+
+func TestActionHandlerFuncNilExecuteReturnsError(t *testing.T) {
+ var handler actionHandlerFunc
+ _, err := handler.Execute(context.Background(), actionRequest{})
+ if err == nil {
+ t.Fatal("expected error")
+ }
+ if !strings.Contains(err.Error(), "nil action handler") {
+ t.Fatalf("expected nil handler error, got %v", err)
+ }
+}