http_test.go 891 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "bytes"
  4. "io"
  5. "net/http"
  6. "net/http/httptest"
  7. "testing"
  8. "github.com/stretchr/testify/require"
  9. "github.com/abh/geodns/v3/targeting"
  10. "github.com/abh/geodns/v3/targeting/geoip2"
  11. "github.com/abh/geodns/v3/zones"
  12. )
  13. func TestHTTP(t *testing.T) {
  14. geoprovider, err := geoip2.New(geoip2.FindDB())
  15. if err == nil {
  16. targeting.Setup(geoprovider)
  17. }
  18. mm, err := zones.NewMuxManager("dns", &zones.NilReg{})
  19. if err != nil {
  20. t.Fatalf("loading zones: %s", err)
  21. }
  22. hs := NewHTTPServer(mm, serverInfo)
  23. srv := httptest.NewServer(hs.Mux())
  24. baseurl := srv.URL
  25. t.Logf("server base url: '%s'", baseurl)
  26. // metrics := NewMetrics()
  27. // go metrics.Updater()
  28. res, err := http.Get(baseurl + "/version")
  29. require.Nil(t, err)
  30. page, _ := io.ReadAll(res.Body)
  31. if !bytes.HasPrefix(page, []byte("GeoDNS ")) {
  32. t.Log("/version didn't start with 'GeoDNS '")
  33. t.Fail()
  34. }
  35. }