test(render): improve test coverage

This commit is contained in:
2024-03-17 23:07:12 +00:00
parent 2ad77f0b1b
commit 7df40b1578
12 changed files with 648 additions and 62 deletions

View File

@@ -1,17 +1,22 @@
package render
import (
"fmt"
"io"
)
var ErrUnsupportedFormat = fmt.Errorf("%w: unsupported format", Err)
// FormatRenderer is a renderer that delegates rendering to another renderer
// based on a format value.
type FormatRenderer struct {
// Renderers is a map of format names to renderers. When Render is called,
// the format is used to look up the renderer to use.
Renderers map[string]Renderer
}
// Render renders a value to an io.Writer using the specified format. If the
// format is not supported, ErrCannotRender is returned.
// format is not supported, ErrUnsupportedFormat is returned.
//
// If the format is supported, but the value cannot be rendered to the format,
// the error returned by the renderer is returned. In most cases this will be
@@ -23,5 +28,5 @@ func (r *FormatRenderer) Render(w io.Writer, format string, v any) error {
return renderer.Render(w, v)
}
return ErrCannotRender
return ErrUnsupportedFormat
}