From a82e937412347659567708a8c942fc298964fe1c Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Tue, 29 Sep 2026 02:31:10 +0200 Subject: [PATCH] Test that contained and paths panic on a node kind they do not list --- render_test.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/render_test.go b/render_test.go index 478f1a0..402d6bb 100644 --- a/render_test.go +++ b/render_test.go @@ -61,11 +61,20 @@ type unhandledNode struct{} func (*unhandledNode) isNode() {} -func TestRenderEdgesPanicsOnAnUnhandledNode(t *testing.T) { - defer func() { - if r := recover(); r == nil || !strings.Contains(fmt.Sprint(r), "*fejkdata.unhandledNode") { - t.Errorf("renderEdges(unhandledNode) recovered %v, want a panic naming the node kind", r) - } - }() - renderEdges(&unhandledNode{}) +func TestNodeSwitchesPanicOnAnUnhandledNode(t *testing.T) { + for name, call := range map[string]func(){ + "contained": func() { contained(&unhandledNode{}) }, + "paths": func() { paths(&unhandledNode{}) }, + "render": func() { render(nil, &unhandledNode{}, renderScope{}) }, + "renderEdges": func() { renderEdges(&unhandledNode{}) }, + } { + t.Run(name, func(t *testing.T) { + defer func() { + if r := recover(); r == nil || !strings.HasPrefix(fmt.Sprint(r), "fejkdata: internal error: ") || !strings.Contains(fmt.Sprint(r), "*fejkdata.unhandledNode") { + t.Errorf("recovered %v, want an internal error naming the node kind", r) + } + }() + call() + }) + } }