49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package checker
|
|
|
|
import (
|
|
"testing"
|
|
|
|
sdk "git.happydns.org/checker-sdk-go/checker"
|
|
)
|
|
|
|
func TestDefinitionSmoke(t *testing.T) {
|
|
prov, ok := Provider().(sdk.CheckerDefinitionProvider)
|
|
if !ok {
|
|
t.Fatalf("Provider does not implement CheckerDefinitionProvider")
|
|
}
|
|
def := prov.Definition()
|
|
if def == nil {
|
|
t.Fatalf("nil definition")
|
|
}
|
|
if def.ID == "" || def.Name == "" {
|
|
t.Errorf("missing ID/Name: %+v", def)
|
|
}
|
|
if !def.HasHTMLReport || !def.HasMetrics {
|
|
t.Errorf("expected HasHTMLReport and HasMetrics: %+v", def)
|
|
}
|
|
if len(def.Rules) == 0 {
|
|
t.Errorf("definition exposes no rules")
|
|
}
|
|
// Recordtype default option must be present for users.
|
|
var has bool
|
|
for _, opt := range def.Options.UserOpts {
|
|
if opt.Id == "recordTypes" {
|
|
has = true
|
|
break
|
|
}
|
|
}
|
|
if !has {
|
|
t.Errorf("missing recordTypes user option")
|
|
}
|
|
|
|
// Service restriction.
|
|
if len(def.Availability.LimitToServices) == 0 {
|
|
t.Errorf("expected LimitToServices to be set")
|
|
}
|
|
}
|
|
|
|
func TestProviderKey(t *testing.T) {
|
|
if Provider().Key() != ObservationKeyResolverPropagation {
|
|
t.Errorf("unexpected observation key")
|
|
}
|
|
}
|