Test that contained and paths panic on a node kind they do not list
This commit is contained in:
+16
-7
@@ -61,11 +61,20 @@ type unhandledNode struct{}
|
|||||||
|
|
||||||
func (*unhandledNode) isNode() {}
|
func (*unhandledNode) isNode() {}
|
||||||
|
|
||||||
func TestRenderEdgesPanicsOnAnUnhandledNode(t *testing.T) {
|
func TestNodeSwitchesPanicOnAnUnhandledNode(t *testing.T) {
|
||||||
defer func() {
|
for name, call := range map[string]func(){
|
||||||
if r := recover(); r == nil || !strings.Contains(fmt.Sprint(r), "*fejkdata.unhandledNode") {
|
"contained": func() { contained(&unhandledNode{}) },
|
||||||
t.Errorf("renderEdges(unhandledNode) recovered %v, want a panic naming the node kind", r)
|
"paths": func() { paths(&unhandledNode{}) },
|
||||||
}
|
"render": func() { render(nil, &unhandledNode{}, renderScope{}) },
|
||||||
}()
|
"renderEdges": func() { renderEdges(&unhandledNode{}) },
|
||||||
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()
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user