From 6e49d3a849d9d6aed59fd90c6da5610278a416e0 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Tue, 4 Feb 2025 14:01:21 -0300 Subject: [PATCH] fix: do not swallow context errors Fixes #1212 Closes #1217 --- tea.go | 2 +- tea_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tea.go b/tea.go index 743a866e93..ce67fa8c9a 100644 --- a/tea.go +++ b/tea.go @@ -622,7 +622,7 @@ func (p *Program) Run() (Model, error) { model, err := p.eventLoop(model, cmds) killed := p.ctx.Err() != nil || err != nil if killed && err == nil { - err = fmt.Errorf("%w: %s", ErrProgramKilled, p.ctx.Err()) + err = fmt.Errorf("%w: %w", ErrProgramKilled, p.ctx.Err()) } if err == nil { // Ensure we rendered the final state of the model. diff --git a/tea_test.go b/tea_test.go index 981851be0b..8126ff019a 100644 --- a/tea_test.go +++ b/tea_test.go @@ -141,6 +141,10 @@ func TestTeaKill(t *testing.T) { if _, err := p.Run(); !errors.Is(err, ErrProgramKilled) { t.Fatalf("Expected %v, got %v", ErrProgramKilled, err) } + + if _, err := p.Run(); !errors.Is(err, context.Canceled) { + t.Fatalf("Expected %v, got %v", context.Canceled, err) + } } func TestTeaContext(t *testing.T) {