lego/providers/dns/bluecat/internal/client_test.go
2023-05-05 09:49:38 +02:00

44 lines
975 B
Go

package internal
import (
"context"
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestClient_LookupParentZoneID(t *testing.T) {
mux := http.NewServeMux()
server := httptest.NewServer(mux)
t.Cleanup(server.Close)
client := NewClient(server.URL, "user", "secret")
client.HTTPClient = server.Client()
mux.HandleFunc("/Services/REST/v1/getEntityByName", func(rw http.ResponseWriter, req *http.Request) {
query := req.URL.Query()
if query.Get("name") == "com" {
_ = json.NewEncoder(rw).Encode(EntityResponse{
ID: 2,
Name: "com",
Type: ZoneType,
Properties: "test",
})
return
}
http.Error(rw, "{}", http.StatusOK)
})
parentID, name, err := client.LookupParentZoneID(context.Background(), 2, "foo.example.com")
require.NoError(t, err)
assert.EqualValues(t, 2, parentID)
assert.Equal(t, "foo.example", name)
}