mirror of
https://github.com/TwiN/gatus.git
synced 2024-11-24 17:04:42 +01:00
9d151fcdb4
* refactor: Partially break core package into dns, result and ssh packages * refactor: Move core package to config/endpoint * refactor: Fix warning about overlapping imported package name with endpoint variable * refactor: Rename EndpointStatus to Status * refactor: Merge result pkg back into endpoint pkg, because it makes more sense * refactor: Rename parameter r to result in Condition.evaluate * refactor: Rename parameter r to result * refactor: Revert accidental change to endpoint.TypeDNS * refactor: Rename parameter r to result * refactor: Merge util package into endpoint package * refactor: Rename parameter r to result
54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package ui
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestValidateAndSetDefaults(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
config *Config
|
|
wantErr error
|
|
}{
|
|
{
|
|
name: "with-valid-config",
|
|
config: &Config{
|
|
Badge: &Badge{
|
|
ResponseTime: &ResponseTime{Thresholds: []int{50, 200, 300, 500, 750}},
|
|
},
|
|
},
|
|
wantErr: nil,
|
|
},
|
|
{
|
|
name: "with-invalid-threshold-length",
|
|
config: &Config{
|
|
Badge: &Badge{
|
|
ResponseTime: &ResponseTime{Thresholds: []int{50, 200, 300, 500}},
|
|
},
|
|
},
|
|
wantErr: ErrInvalidBadgeResponseTimeConfig,
|
|
},
|
|
{
|
|
name: "with-invalid-thresholds-order",
|
|
config: &Config{
|
|
Badge: &Badge{ResponseTime: &ResponseTime{Thresholds: []int{50, 200, 500, 300, 750}}},
|
|
},
|
|
wantErr: ErrInvalidBadgeResponseTimeConfig,
|
|
},
|
|
{
|
|
name: "with-no-badge-configured", // should give default badge cfg
|
|
config: &Config{},
|
|
wantErr: nil,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if err := tt.config.ValidateAndSetDefaults(); !errors.Is(err, tt.wantErr) {
|
|
t.Errorf("Expected error %v, got %v", tt.wantErr, err)
|
|
}
|
|
})
|
|
}
|
|
}
|