(new): rich message support
(fix): runtime reliability (tests): regression coverage (doc): v1.1 release notes
This commit is contained in:
@@ -95,3 +95,30 @@ func TestExecRunnersEmitObserverEvents(t *testing.T) {
|
||||
t.Fatalf("unexpected runner error event: %#v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecRunnersRecoversRunnerPanic(t *testing.T) {
|
||||
observer := &runnerObserver{}
|
||||
bot := &Bot[NoData]{
|
||||
logger: sneklog.NewLogger(),
|
||||
observer: observer,
|
||||
runners: []Runner[NoData]{
|
||||
NewRunner("panic", func(*Bot[NoData]) error {
|
||||
panic("boom")
|
||||
}).Async(false),
|
||||
},
|
||||
}
|
||||
defer func() {
|
||||
if err := bot.logger.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
bot.ExecRunners(context.Background())
|
||||
|
||||
if len(observer.runners) != 1 || observer.runners[0].Err == nil {
|
||||
t.Fatalf("expected recovered panic in runner event, got %#v", observer.runners)
|
||||
}
|
||||
if len(observer.errors) != 1 || observer.errors[0].Err == nil {
|
||||
t.Fatalf("expected recovered panic in error event, got %#v", observer.errors)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user