MCPcopy
hub / github.com/pocketbase/pocketbase / TestHookTriggerErrorPropagation

Function TestHookTriggerErrorPropagation

tools/hook/hook_test.go:123–162  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

121}
122
123func TestHookTriggerErrorPropagation(t *testing.T) {
124 err := errors.New("test")
125
126 scenarios := []struct {
127 name string
128 handlers []func(*Event) error
129 expectedError error
130 }{
131 {
132 "without error",
133 []func(*Event) error{
134 func(e *Event) error { return e.Next() },
135 func(e *Event) error { return e.Next() },
136 },
137 nil,
138 },
139 {
140 "with error",
141 []func(*Event) error{
142 func(e *Event) error { return e.Next() },
143 func(e *Event) error { e.Next(); return err },
144 func(e *Event) error { return e.Next() },
145 },
146 err,
147 },
148 }
149
150 for _, s := range scenarios {
151 t.Run(s.name, func(t *testing.T) {
152 h := Hook[*Event]{}
153 for _, handler := range s.handlers {
154 h.BindFunc(handler)
155 }
156 result := h.Trigger(&Event{})
157 if result != s.expectedError {
158 t.Fatalf("Expected %v, got %v", s.expectedError, result)
159 }
160 })
161 }
162}

Callers

nothing calls this directly

Calls 4

TriggerMethod · 0.80
NextMethod · 0.65
RunMethod · 0.45
BindFuncMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…