(t *testing.T)
| 101 | } |
| 102 | |
| 103 | func TestCallbackInvokePanicPropagation(t *testing.T) { |
| 104 | cb := &callbacks{} |
| 105 | cb.Add("h", "k1", func() { panic("boom") }) |
| 106 | |
| 107 | // Test that panic is propagated (not swallowed by Invoke) |
| 108 | defer func() { |
| 109 | if r := recover(); r != nil { |
| 110 | if r != "boom" { |
| 111 | t.Errorf("Expected panic 'boom', got %v", r) |
| 112 | } |
| 113 | } else { |
| 114 | t.Errorf("Expected panic to be propagated, but it was swallowed") |
| 115 | } |
| 116 | }() |
| 117 | |
| 118 | // This should panic and be caught by the defer above |
| 119 | cb.Invoke() |
| 120 | } |