mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
fixup! util/vizerror: add new package for visible errors
Signed-off-by: Will Norris <will@tailscale.com>
This commit is contained in:
parent
a6c6979b85
commit
648aa00a28
@ -153,7 +153,7 @@ func TestStdHandler(t *testing.T) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: "handler returns user visible error",
|
name: "handler returns user-visible error",
|
||||||
rh: handlerErr(0, vizerror.New("visible error")),
|
rh: handlerErr(0, vizerror.New("visible error")),
|
||||||
r: req(bgCtx, "http://example.com/foo"),
|
r: req(bgCtx, "http://example.com/foo"),
|
||||||
wantCode: 500,
|
wantCode: 500,
|
||||||
@ -169,6 +169,24 @@ func TestStdHandler(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: "handler returns user-visible error wrapped by private error",
|
||||||
|
rh: handlerErr(0, fmt.Errorf("private internal error: %w", vizerror.New("visible error"))),
|
||||||
|
r: req(bgCtx, "http://example.com/foo"),
|
||||||
|
wantCode: 500,
|
||||||
|
wantLog: AccessLogRecord{
|
||||||
|
When: clock.Start,
|
||||||
|
Seconds: 1.0,
|
||||||
|
Proto: "HTTP/1.1",
|
||||||
|
Host: "example.com",
|
||||||
|
Method: "GET",
|
||||||
|
RequestURI: "/foo",
|
||||||
|
Err: "visible error",
|
||||||
|
Code: 500,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
name: "handler returns generic error",
|
name: "handler returns generic error",
|
||||||
rh: handlerErr(0, testErr),
|
rh: handlerErr(0, testErr),
|
||||||
|
@ -20,12 +20,12 @@ func (e Error) Error() string {
|
|||||||
return e.err.Error()
|
return e.err.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns an error that formats as the given text. Always returns a vizerror.Error.
|
// New returns an error that formats as the given text. It always returns a vizerror.Error.
|
||||||
func New(text string) error {
|
func New(text string) error {
|
||||||
return Error{errors.New(text)}
|
return Error{errors.New(text)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Errorf returns an Error with the specified format and values. Always returns a vizerror.Error.
|
// Errorf returns an Error with the specified format and values. It always returns a vizerror.Error.
|
||||||
func Errorf(format string, a ...any) error {
|
func Errorf(format string, a ...any) error {
|
||||||
return Error{fmt.Errorf(format, a...)}
|
return Error{fmt.Errorf(format, a...)}
|
||||||
}
|
}
|
||||||
@ -35,7 +35,7 @@ func (e Error) Unwrap() error {
|
|||||||
return e.err
|
return e.err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrap err with a vizerror.Error.
|
// Wrap wraps err with a vizerror.Error.
|
||||||
func Wrap(err error) error {
|
func Wrap(err error) error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user