Add resolver tests (#182)
Co-authored-by: James Mills <1290234+prologic@users.noreply.github.com> Reviewed-on: https://git.mills.io/saltyim/saltyim/pulls/182
This commit is contained in:
parent
36f9b25ec9
commit
57970ff67f
6
Makefile
6
Makefile
|
@ -128,11 +128,7 @@ fmt: ## Format sources fiels
|
|||
@$(GOCMD) fmt ./...
|
||||
|
||||
test: ## Run test suite
|
||||
@CGO_ENABLED=1 $(GOCMD) test -v -race -cover -coverprofile=coverage.out ./...
|
||||
|
||||
coverage: ## Get test coverage report
|
||||
@CGO_ENABLED=1 $(GOCMD) test -v -race -cover -coverprofile=coverage.out ./...
|
||||
@$(GOCMD) tool cover -html=coverage.out
|
||||
@CGO_ENABLED=1 $(GOCMD) test -failfast -shuffle on -race -cover -coverprofile=coverage.out ./...
|
||||
|
||||
clean: ## Remove untracked files
|
||||
@git clean -f -d -x -e certs
|
||||
|
|
|
@ -389,7 +389,7 @@ func (cli *Client) SendToAddr(addr Addr, msg string) error {
|
|||
func (cli *Client) Register(brokerURI string) error {
|
||||
if brokerURI == "" {
|
||||
log.Debugf("Looking up SRV record for _salty._tcp.%s", cli.Me().Domain())
|
||||
target, err := resolver.LookupSRV("salty", "tcp", cli.Me().Domain())
|
||||
target, err := DefaultResolver.LookupSRV("salty", "tcp", cli.Me().Domain())
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to find broker for %s: %w", cli.Me(), err)
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
// Package main implements the PWA (progressive web app) using the go-app framework
|
||||
package main
|
||||
|
||||
import (
|
||||
|
@ -10,7 +11,7 @@ import (
|
|||
|
||||
func init() {
|
||||
log.SetLevel(log.DebugLevel)
|
||||
saltyim.SetResolver(&saltyim.DNSOverHTTPResolver{})
|
||||
saltyim.DefaultResolver = &saltyim.DNSOverHTTPResolver{}
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
|
|
@ -171,7 +171,7 @@ func (a *addr) HashURI() string {
|
|||
|
||||
func (a *addr) Refresh() error {
|
||||
log.Debugf("Looking up SRV record for _salty._tcp.%s", a.domain)
|
||||
if target, err := resolver.LookupSRV("salty", "tcp", a.domain); err == nil {
|
||||
if target, err := DefaultResolver.LookupSRV("salty", "tcp", a.domain); err == nil {
|
||||
a.discoveredDomain = target
|
||||
log.Debugf("Discovered salty services %s", a.discoveredDomain)
|
||||
} else if err != nil {
|
||||
|
@ -211,7 +211,7 @@ func (a *addr) Avatar() string {
|
|||
}
|
||||
|
||||
log.Debugf("Looking up SRV record for _avatars._tcp.%s", a.domain)
|
||||
if target, err := resolver.LookupSRV("avatars", "tcp", a.domain); err == nil {
|
||||
if target, err := DefaultResolver.LookupSRV("avatars", "tcp", a.domain); err == nil {
|
||||
a.avatar = fmt.Sprintf("https://%s/avatar/%s", target, a.Hash())
|
||||
}
|
||||
a.checkedAvatar = true
|
||||
|
|
|
@ -26,18 +26,10 @@ var (
|
|||
// ErrSRVRecordNotFound is an error returned by a resolver when there is no SRV record found for the domain of a Salty Address
|
||||
ErrSRVRecordNotFound = errors.New("error: No SRV records found")
|
||||
|
||||
resolver Resolver
|
||||
// DefaultResolver is the default resolver which defaults to the StandardResolver
|
||||
DefaultResolver Resolver = &StandardResolver{}
|
||||
)
|
||||
|
||||
func init() {
|
||||
SetResolver(&StandardResolver{})
|
||||
}
|
||||
|
||||
// SetResolver sets the default resolver used by this package
|
||||
func SetResolver(r Resolver) {
|
||||
resolver = r
|
||||
}
|
||||
|
||||
// StandardResolver is a standard resolver that performs direct DNS queries over
|
||||
// the standard networking protocol using port tcp/53 or udp/53
|
||||
type StandardResolver struct{}
|
|
@ -0,0 +1,40 @@
|
|||
package saltyim_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.mills.io/saltyim"
|
||||
)
|
||||
|
||||
func TestDefaultResolver(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
require := require.New(t)
|
||||
|
||||
r, err := saltyim.DefaultResolver.LookupSRV("salty", "tcp", "home.arpa")
|
||||
require.NoError(err)
|
||||
assert.Equal("salty.home.arpa", r)
|
||||
}
|
||||
|
||||
func TestStandardResolver(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
require := require.New(t)
|
||||
|
||||
resolver := &saltyim.StandardResolver{}
|
||||
|
||||
r, err := resolver.LookupSRV("salty", "tcp", "home.arpa")
|
||||
require.NoError(err)
|
||||
assert.Equal("salty.home.arpa", r)
|
||||
}
|
||||
|
||||
func TestDNSOverHTTPResolver(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
require := require.New(t)
|
||||
|
||||
resolver := &saltyim.DNSOverHTTPResolver{}
|
||||
|
||||
r, err := resolver.LookupSRV("salty", "tcp", "mills.io")
|
||||
require.NoError(err)
|
||||
assert.Equal(r, "salty.mills.io")
|
||||
}
|
Loading…
Reference in New Issue