Fix fallback discovery success
This commit is contained in:
parent
f5eb0d7d4f
commit
d838936a2d
2 changed files with 28 additions and 1 deletions
|
|
@ -591,7 +591,7 @@ func (service *Service) Discover() error {
|
|||
return err
|
||||
}
|
||||
service.replaceRecords(discovered)
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
service.replaceRecords(discovered)
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -1212,6 +1212,33 @@ func TestServiceDiscoverFallsBackWhenPrimaryDiscovererFails(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestServiceDiscoverReturnsNilAfterFallbackDiscoverySucceeds(t *testing.T) {
|
||||
service := NewService(ServiceOptions{
|
||||
RecordDiscoverer: func() (map[string]NameRecords, error) {
|
||||
return nil, errors.New("primary discoverer failed")
|
||||
},
|
||||
FallbackRecordDiscoverer: func() (map[string]NameRecords, error) {
|
||||
return map[string]NameRecords{
|
||||
"gateway.charon.lthn": {
|
||||
A: []string{"10.10.10.10"},
|
||||
},
|
||||
}, nil
|
||||
},
|
||||
})
|
||||
|
||||
if err := service.Discover(); err != nil {
|
||||
t.Fatalf("expected fallback discovery success to return nil, got %v", err)
|
||||
}
|
||||
|
||||
result, ok := service.Resolve("gateway.charon.lthn")
|
||||
if !ok {
|
||||
t.Fatal("expected fallback record to resolve after discovery")
|
||||
}
|
||||
if len(result.A) != 1 || result.A[0] != "10.10.10.10" {
|
||||
t.Fatalf("unexpected fallback resolve result: %#v", result.A)
|
||||
}
|
||||
}
|
||||
|
||||
func TestServiceDiscoverUsesFallbackOnlyWhenPrimaryMissing(t *testing.T) {
|
||||
fallbackCalled := false
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue