mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-13 07:42:24 +02:00
chore: do not use sentinel errors when unneeded
- main reason being it's a burden to always define sentinel errors at global scope, wrap them with `%w` instead of using a string directly - only use sentinel errors when it has to be checked using `errors.Is` - replace all usage of these sentinel errors in `fmt.Errorf` with direct strings that were in the sentinel error - exclude the sentinel error definition requirement from .golangci.yml - update unit tests to use ContainersError instead of ErrorIs so it stays as a "not a change detector test" without requiring a sentinel error
This commit is contained in:
@@ -120,7 +120,7 @@ func Test_Server_BadSettings(t *testing.T) {
|
||||
|
||||
server, err := New(settings)
|
||||
assert.Nil(t, server)
|
||||
assert.ErrorIs(t, err, ErrBlockProfileRateNegative)
|
||||
assert.ErrorContains(t, err, "block profile rate cannot be negative")
|
||||
const expectedErrMessage = "pprof settings failed validation: block profile rate cannot be negative"
|
||||
assert.EqualError(t, err, expectedErrMessage)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package pprof
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/httpserver"
|
||||
@@ -51,18 +50,13 @@ func (s *Settings) OverrideWith(other Settings) {
|
||||
s.HTTPServer.OverrideWith(other.HTTPServer)
|
||||
}
|
||||
|
||||
var (
|
||||
ErrBlockProfileRateNegative = errors.New("block profile rate cannot be negative")
|
||||
ErrMutexProfileRateNegative = errors.New("mutex profile rate cannot be negative")
|
||||
)
|
||||
|
||||
func (s Settings) Validate() (err error) {
|
||||
if *s.BlockProfileRate < 0 {
|
||||
return fmt.Errorf("%w", ErrBlockProfileRateNegative)
|
||||
return errors.New("block profile rate cannot be negative")
|
||||
}
|
||||
|
||||
if *s.MutexProfileRate < 0 {
|
||||
return fmt.Errorf("%w", ErrMutexProfileRateNegative)
|
||||
return errors.New("mutex profile rate cannot be negative")
|
||||
}
|
||||
|
||||
return s.HTTPServer.Validate()
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/httpserver"
|
||||
"github.com/qdm12/gosettings/validate"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -195,7 +194,6 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
|
||||
testCases := map[string]struct {
|
||||
settings Settings
|
||||
errWrapped error
|
||||
errMessage string
|
||||
}{
|
||||
"negative block profile rate": {
|
||||
@@ -203,16 +201,14 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
BlockProfileRate: intPtr(-1),
|
||||
MutexProfileRate: intPtr(0),
|
||||
},
|
||||
errWrapped: ErrBlockProfileRateNegative,
|
||||
errMessage: ErrBlockProfileRateNegative.Error(),
|
||||
errMessage: "block profile rate cannot be negative",
|
||||
},
|
||||
"negative mutex profile rate": {
|
||||
settings: Settings{
|
||||
BlockProfileRate: intPtr(0),
|
||||
MutexProfileRate: intPtr(-1),
|
||||
},
|
||||
errWrapped: ErrMutexProfileRateNegative,
|
||||
errMessage: ErrMutexProfileRateNegative.Error(),
|
||||
errMessage: "mutex profile rate cannot be negative",
|
||||
},
|
||||
"http server validation error": {
|
||||
settings: Settings{
|
||||
@@ -222,7 +218,6 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
Address: ":x",
|
||||
},
|
||||
},
|
||||
errWrapped: validate.ErrPortNotAnInteger,
|
||||
errMessage: "port value is not an integer: x",
|
||||
},
|
||||
"valid settings": {
|
||||
@@ -247,9 +242,10 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
|
||||
err := testCase.settings.Validate()
|
||||
|
||||
assert.ErrorIs(t, err, testCase.errWrapped)
|
||||
if testCase.errMessage != "" {
|
||||
assert.EqualError(t, err, testCase.errMessage)
|
||||
} else {
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user