chore(config): upgrade to gosettings v0.4.0

- drop qdm12/govalid dependency
- upgrade qdm12/ss-server to v0.6.0
- do not unset sensitive config settings (makes no sense to me)
This commit is contained in:
Quentin McGaw
2024-03-25 19:14:20 +00:00
parent 23b0320cfb
commit ecc80a5a9e
88 changed files with 1371 additions and 2621 deletions

View File

@@ -8,8 +8,8 @@ import (
"time"
"github.com/qdm12/gosettings"
"github.com/qdm12/gosettings/validate"
"github.com/qdm12/gotree"
"github.com/qdm12/govalid/address"
)
type Settings struct {
@@ -34,12 +34,12 @@ type Settings struct {
}
func (s *Settings) SetDefaults() {
s.Address = gosettings.DefaultString(s.Address, ":8000")
s.Address = gosettings.DefaultComparable(s.Address, ":8000")
const defaultReadTimeout = 3 * time.Second
s.ReadHeaderTimeout = gosettings.DefaultNumber(s.ReadHeaderTimeout, defaultReadTimeout)
s.ReadTimeout = gosettings.DefaultNumber(s.ReadTimeout, defaultReadTimeout)
s.ReadHeaderTimeout = gosettings.DefaultComparable(s.ReadHeaderTimeout, defaultReadTimeout)
s.ReadTimeout = gosettings.DefaultComparable(s.ReadTimeout, defaultReadTimeout)
const defaultShutdownTimeout = 3 * time.Second
s.ShutdownTimeout = gosettings.DefaultNumber(s.ShutdownTimeout, defaultShutdownTimeout)
s.ShutdownTimeout = gosettings.DefaultComparable(s.ShutdownTimeout, defaultShutdownTimeout)
}
func (s Settings) Copy() Settings {
@@ -53,26 +53,15 @@ func (s Settings) Copy() Settings {
}
}
func (s *Settings) MergeWith(other Settings) {
s.Address = gosettings.MergeWithString(s.Address, other.Address)
s.Handler = gosettings.MergeWithInterface(s.Handler, other.Handler)
if s.Logger == nil {
s.Logger = other.Logger
}
s.ReadHeaderTimeout = gosettings.MergeWithNumber(s.ReadHeaderTimeout, other.ReadHeaderTimeout)
s.ReadTimeout = gosettings.MergeWithNumber(s.ReadTimeout, other.ReadTimeout)
s.ShutdownTimeout = gosettings.MergeWithNumber(s.ShutdownTimeout, other.ShutdownTimeout)
}
func (s *Settings) OverrideWith(other Settings) {
s.Address = gosettings.OverrideWithString(s.Address, other.Address)
s.Handler = gosettings.OverrideWithInterface(s.Handler, other.Handler)
s.Address = gosettings.OverrideWithComparable(s.Address, other.Address)
s.Handler = gosettings.OverrideWithComparable(s.Handler, other.Handler)
if other.Logger != nil {
s.Logger = other.Logger
}
s.ReadHeaderTimeout = gosettings.OverrideWithNumber(s.ReadHeaderTimeout, other.ReadHeaderTimeout)
s.ReadTimeout = gosettings.OverrideWithNumber(s.ReadTimeout, other.ReadTimeout)
s.ShutdownTimeout = gosettings.OverrideWithNumber(s.ShutdownTimeout, other.ShutdownTimeout)
s.ReadHeaderTimeout = gosettings.OverrideWithComparable(s.ReadHeaderTimeout, other.ReadHeaderTimeout)
s.ReadTimeout = gosettings.OverrideWithComparable(s.ReadTimeout, other.ReadTimeout)
s.ShutdownTimeout = gosettings.OverrideWithComparable(s.ShutdownTimeout, other.ShutdownTimeout)
}
var (
@@ -84,8 +73,7 @@ var (
)
func (s Settings) Validate() (err error) {
uid := os.Getuid()
err = address.Validate(s.Address, address.OptionListening(uid))
err = validate.ListeningAddress(s.Address, os.Getuid())
if err != nil {
return err
}

View File

@@ -5,7 +5,7 @@ import (
"testing"
"time"
"github.com/qdm12/govalid/address"
"github.com/qdm12/gosettings/validate"
"github.com/stretchr/testify/assert"
)
@@ -98,68 +98,6 @@ func Test_Settings_Copy(t *testing.T) {
}
}
func Test_Settings_MergeWith(t *testing.T) {
t.Parallel()
someHandler := http.NewServeMux()
someLogger := &testLogger{}
testCases := map[string]struct {
settings Settings
other Settings
expected Settings
}{
"merge empty with empty": {},
"merge empty with filled": {
other: Settings{
Address: ":8001",
Handler: someHandler,
Logger: someLogger,
ReadHeaderTimeout: time.Second,
ReadTimeout: time.Second,
ShutdownTimeout: time.Second,
},
expected: Settings{
Address: ":8001",
Handler: someHandler,
Logger: someLogger,
ReadHeaderTimeout: time.Second,
ReadTimeout: time.Second,
ShutdownTimeout: time.Second,
},
},
"merge filled with empty": {
settings: Settings{
Address: ":8001",
Handler: someHandler,
Logger: someLogger,
ReadHeaderTimeout: time.Second,
ReadTimeout: time.Second,
ShutdownTimeout: time.Second,
},
expected: Settings{
Address: ":8001",
Handler: someHandler,
Logger: someLogger,
ReadHeaderTimeout: time.Second,
ReadTimeout: time.Second,
ShutdownTimeout: time.Second,
},
},
}
for name, testCase := range testCases {
testCase := testCase
t.Run(name, func(t *testing.T) {
t.Parallel()
testCase.settings.MergeWith(testCase.other)
assert.Equal(t, testCase.expected, testCase.settings)
})
}
}
func Test_Settings_OverrideWith(t *testing.T) {
t.Parallel()
@@ -257,12 +195,12 @@ func Test_Settings_Validate(t *testing.T) {
errWrapped error
errMessage string
}{
"bad address": {
"bad_address": {
settings: Settings{
Address: "noport",
Address: "address:notanint",
},
errWrapped: address.ErrValueNotValid,
errMessage: "value is not valid: address noport: missing port in address",
errWrapped: validate.ErrPortNotAnInteger,
errMessage: "port value is not an integer: notanint",
},
"nil handler": {
settings: Settings{
@@ -332,7 +270,7 @@ func Test_Settings_Validate(t *testing.T) {
err := testCase.settings.Validate()
assert.ErrorIs(t, err, testCase.errWrapped)
if err != nil {
if testCase.errMessage != "" {
assert.EqualError(t, err, testCase.errMessage)
}
})