mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
When rendering a Node, Renderer looks up the NodeRenderer for that node's kind in a slice. That will panic with an "index out of range" error if a node renderer for that node kind has not been registered. This change verifies that a node renderer is available for that node kind before attempting to use it, and instead of panicking, returns an informative error message.
25 lines
533 B
Go
25 lines
533 B
Go
package renderer
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/yuin/goldmark/parser"
|
|
"github.com/yuin/goldmark/text"
|
|
)
|
|
|
|
func TestRenderUnknownNode(t *testing.T) {
|
|
src := []byte("# Foo\n\nHello world")
|
|
node := parser.NewParser().Parse(text.NewReader(src))
|
|
|
|
r := NewRenderer()
|
|
err := r.Render(ioutil.Discard, src, node)
|
|
if err == nil {
|
|
t.Fatalf("Render() expected error")
|
|
}
|
|
|
|
if !strings.Contains(err.Error(), "unrecognized node kind Document") {
|
|
t.Errorf("Render() failed with unexpected error: %v", err)
|
|
}
|
|
}
|