diff --git a/config/config_test.go b/config/config_test.go index ba91bdcc..65112a4f 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -221,8 +221,7 @@ services: } func TestParseAndValidateConfigBytesWithInvalidPort(t *testing.T) { - defer func() { recover() }() - _, _ = parseAndValidateConfigBytes([]byte(` + _, err := parseAndValidateConfigBytes([]byte(` web: port: 65536 address: 127.0.0.1 @@ -232,7 +231,9 @@ services: conditions: - "[STATUS] == 200" `)) - t.Fatal("Should've panicked because the configuration specifies an invalid port value") + if err == nil { + t.Fatal("Should've returned an error because the configuration specifies an invalid port value") + } } func TestParseAndValidateConfigBytesWithMetricsAndCustomUserAgentHeader(t *testing.T) { @@ -1028,8 +1029,7 @@ services: } func TestParseAndValidateConfigBytesWithInvalidSecurityConfig(t *testing.T) { - defer func() { recover() }() - _, _ = parseAndValidateConfigBytes([]byte(` + _, err := parseAndValidateConfigBytes([]byte(` security: basic: username: "admin" @@ -1040,7 +1040,9 @@ services: conditions: - "[STATUS] == 200" `)) - t.Error("Function should've panicked") + if err == nil { + t.Error("Function should've returned an error") + } } func TestParseAndValidateConfigBytesWithValidSecurityConfig(t *testing.T) { @@ -1161,8 +1163,7 @@ kubernetes: } func TestParseAndValidateConfigBytesWithKubernetesAutoDiscoveryButNoServiceTemplate(t *testing.T) { - defer func() { recover() }() - _, _ = parseAndValidateConfigBytes([]byte(` + _, err := parseAndValidateConfigBytes([]byte(` kubernetes: cluster-mode: "mock" auto-discover: true @@ -1171,12 +1172,13 @@ kubernetes: hostname-suffix: ".default.svc.cluster.local" target-path: "/health" `)) - t.Error("Function should've panicked because providing a service-template is mandatory") + if err == nil { + t.Error("Function should've returned an error because providing a service-template is mandatory") + } } func TestParseAndValidateConfigBytesWithKubernetesAutoDiscoveryUsingClusterModeIn(t *testing.T) { - defer func() { recover() }() - _, _ = parseAndValidateConfigBytes([]byte(` + _, err := parseAndValidateConfigBytes([]byte(` kubernetes: cluster-mode: "in" auto-discover: true @@ -1189,8 +1191,9 @@ kubernetes: hostname-suffix: ".default.svc.cluster.local" target-path: "/health" `)) - // TODO: find a way to test this? - t.Error("Function should've panicked because testing with ClusterModeIn isn't supported") + if err == nil { + t.Error("Function should've returned an error because testing with ClusterModeIn isn't supported") + } } func TestGetAlertingProviderByAlertType(t *testing.T) { diff --git a/core/dns_test.go b/core/dns_test.go index c037d5b4..f6bb5e81 100644 --- a/core/dns_test.go +++ b/core/dns_test.go @@ -109,8 +109,10 @@ func TestService_ValidateAndSetDefaultsWithNoDNSQueryName(t *testing.T) { QueryType: "A", QueryName: "", } - dns.validateAndSetDefault() - t.Fatal("Should've panicked because service`s dns didn't have a query name, which is a mandatory field for dns") + err := dns.validateAndSetDefault() + if err == nil { + t.Fatal("Should've returned an error because service`s dns didn't have a query name, which is a mandatory field for dns") + } } func TestService_ValidateAndSetDefaultsWithInvalidDNSQueryType(t *testing.T) { @@ -119,6 +121,8 @@ func TestService_ValidateAndSetDefaultsWithInvalidDNSQueryType(t *testing.T) { QueryType: "B", QueryName: "example.com", } - dns.validateAndSetDefault() - t.Fatal("Should've panicked because service`s dns query type is invalid, it needs to be a valid query name like A, AAAA, CNAME...") + err := dns.validateAndSetDefault() + if err == nil { + t.Fatal("Should've returned an error because service`s dns query type is invalid, it needs to be a valid query name like A, AAAA, CNAME...") + } } diff --git a/core/service_test.go b/core/service_test.go index 348bbb45..0d3449f4 100644 --- a/core/service_test.go +++ b/core/service_test.go @@ -49,8 +49,10 @@ func TestService_ValidateAndSetDefaultsWithNoName(t *testing.T) { URL: "http://example.com", Conditions: []*Condition{&condition}, } - service.ValidateAndSetDefaults() - t.Fatal("Should've panicked because service didn't have a name, which is a mandatory field") + err := service.ValidateAndSetDefaults() + if err == nil { + t.Fatal("Should've returned an error because service didn't have a name, which is a mandatory field") + } } func TestService_ValidateAndSetDefaultsWithNoUrl(t *testing.T) { @@ -61,8 +63,10 @@ func TestService_ValidateAndSetDefaultsWithNoUrl(t *testing.T) { URL: "", Conditions: []*Condition{&condition}, } - service.ValidateAndSetDefaults() - t.Fatal("Should've panicked because service didn't have an url, which is a mandatory field") + err := service.ValidateAndSetDefaults() + if err == nil { + t.Fatal("Should've returned an error because service didn't have an url, which is a mandatory field") + } } func TestService_ValidateAndSetDefaultsWithNoConditions(t *testing.T) { @@ -72,8 +76,10 @@ func TestService_ValidateAndSetDefaultsWithNoConditions(t *testing.T) { URL: "http://example.com", Conditions: nil, } - service.ValidateAndSetDefaults() - t.Fatal("Should've panicked because service didn't have at least 1 condition") + err := service.ValidateAndSetDefaults() + if err == nil { + t.Fatal("Should've returned an error because service didn't have at least 1 condition") + } } func TestService_ValidateAndSetDefaultsWithDNS(t *testing.T) { @@ -87,7 +93,10 @@ func TestService_ValidateAndSetDefaultsWithDNS(t *testing.T) { }, Conditions: []*Condition{&conditionSuccess}, } - service.ValidateAndSetDefaults() + err := service.ValidateAndSetDefaults() + if err != nil { + + } if service.DNS.QueryName != "example.com." { t.Error("Service.dns.query-name should be formatted with . suffix") }