fix(errors): put exported errors in util #161
6 changed files with 26 additions and 19 deletions
|
@ -195,7 +195,7 @@ func ParseCLI(args []string, version string) (*util.Options, error) {
|
|||
if *versionFlag {
|
||||
fmt.Printf("awl version %s, built with %s\n", version, runtime.Version())
|
||||
|
||||
return &opts, ErrNotError
|
||||
return &opts, util.ErrNotError
|
||||
}
|
||||
|
||||
// Parse all the arguments that don't start with - or --
|
||||
|
@ -233,9 +233,6 @@ func ParseCLI(args []string, version string) (*util.Options, error) {
|
|||
return &opts, nil
|
||||
}
|
||||
|
||||
// ErrNotError is for returning not error.
|
||||
var ErrNotError = errors.New("not an error")
|
||||
|
||||
var errNoArg = errors.New("no argument given")
|
||||
|
||||
type errInvalidArg struct {
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"time"
|
||||
|
||||
cli "git.froth.zone/sam/awl/cmd"
|
||||
"git.froth.zone/sam/awl/pkg/util"
|
||||
"gotest.tools/v3/assert"
|
||||
)
|
||||
|
||||
|
@ -103,7 +104,7 @@ func TestVersion(t *testing.T) {
|
|||
|
||||
_, err := cli.ParseCLI(args, "test")
|
||||
|
||||
assert.ErrorType(t, err, cli.ErrNotError)
|
||||
assert.ErrorType(t, err, util.ErrNotError)
|
||||
}
|
||||
|
||||
func TestTimeout(t *testing.T) {
|
||||
|
|
2
main.go
2
main.go
|
@ -18,7 +18,7 @@ var version = "DEV"
|
|||
func main() {
|
||||
if opts, code, err := run(os.Args); err != nil {
|
||||
// TODO: Make not ew
|
||||
if errors.Is(err, cli.ErrNotError) || strings.Contains(err.Error(), "help requested") {
|
||||
if errors.Is(err, util.ErrNotError) || strings.Contains(err.Error(), "help requested") {
|
||||
os.Exit(0)
|
||||
} else {
|
||||
opts.Logger.Error(err)
|
||||
|
|
|
@ -72,7 +72,7 @@ func (resolver *HTTPSResolver) LookUp(msg *dns.Msg) (util.Response, error) {
|
|||
}
|
||||
|
||||
if res.StatusCode != http.StatusOK {
|
||||
return util.Response{}, &ErrHTTPStatus{res.StatusCode}
|
||||
return util.Response{}, &util.ErrHTTPStatus{Code: res.StatusCode}
|
||||
}
|
||||
|
||||
resolver.opts.Logger.Debug("https: reading response")
|
||||
|
@ -98,12 +98,3 @@ func (resolver *HTTPSResolver) LookUp(msg *dns.Msg) (util.Response, error) {
|
|||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// ErrHTTPStatus is returned when DoH returns a bad status code.
|
||||
type ErrHTTPStatus struct {
|
||||
code int
|
||||
}
|
||||
|
||||
func (e *ErrHTTPStatus) Error() string {
|
||||
return fmt.Sprintf("doh server responded with HTTP %d", e.code)
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"testing"
|
||||
|
||||
"git.froth.zone/sam/awl/pkg/query"
|
||||
"git.froth.zone/sam/awl/pkg/resolvers"
|
||||
"git.froth.zone/sam/awl/pkg/util"
|
||||
"github.com/miekg/dns"
|
||||
"gotest.tools/v3/assert"
|
||||
|
@ -84,7 +83,7 @@ func TestHTTPS(t *testing.T) {
|
|||
)
|
||||
for i := 0; i <= test.opts.Request.Retries; i++ {
|
||||
res, err = query.CreateQuery(test.opts)
|
||||
if err == nil || errors.Is(err, &resolvers.ErrHTTPStatus{}) {
|
||||
if err == nil || errors.Is(err, &util.ErrHTTPStatus{}) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +92,7 @@ func TestHTTPS(t *testing.T) {
|
|||
assert.NilError(t, err)
|
||||
assert.Assert(t, res != util.Response{})
|
||||
} else {
|
||||
if errors.Is(err, &resolvers.ErrHTTPStatus{}) {
|
||||
if errors.Is(err, &util.ErrHTTPStatus{}) {
|
||||
assert.ErrorContains(t, err, "404")
|
||||
}
|
||||
assert.Equal(t, res, util.Response{})
|
||||
|
|
19
pkg/util/errors.go
Normal file
19
pkg/util/errors.go
Normal file
|
@ -0,0 +1,19 @@
|
|||
package util
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// ErrHTTPStatus is returned when DoH returns a bad status code.
|
||||
type ErrHTTPStatus struct {
|
||||
// Status code
|
||||
Code int
|
||||
}
|
||||
|
||||
func (e *ErrHTTPStatus) Error() string {
|
||||
return fmt.Sprintf("doh server responded with HTTP %d", e.Code)
|
||||
}
|
||||
|
||||
// ErrNotError is an error that is not actually an error.
|
||||
var ErrNotError = errors.New("not an error")
|
Loading…
Reference in a new issue