From fc21d23f7f15b11bdc0eb4583137e24643d05e83 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 4 Aug 2025 14:46:37 +0200 Subject: [PATCH] tests: clean up code (#2612) --- providers/dns/acmedns/acmedns_test.go | 32 +++---- .../{request-body.json => fetch-request.json} | 0 .../{fetch-all.json => fetch_all.json} | 0 .../dns/acmedns/internal/http_storage_test.go | 6 +- .../dns/allinkl/internal/identity_test.go | 1 + providers/dns/bindman/bindman_test.go | 92 +++++++++---------- .../bindman/fixtures/add_record-request.json | 5 + providers/dns/bindman/fixtures/error.json | 5 + providers/dns/civo/civo_test.go | 1 + providers/dns/cloudflare/cloudflare_test.go | 1 + providers/dns/gandi/gandi_test.go | 1 + providers/dns/gandiv5/gandiv5_test.go | 1 + providers/dns/gcloud/googlecloud_test.go | 2 +- providers/dns/httpreq/httpreq_test.go | 3 + providers/dns/lightsail/lightsail_test.go | 1 + providers/dns/loopia/internal/client_test.go | 1 + providers/dns/namecheap/namecheap_test.go | 4 +- providers/dns/otc/otc_test.go | 1 + providers/dns/rackspace/rackspace_test.go | 1 + providers/dns/regru/internal/client_test.go | 1 + providers/dns/route53/route53_test.go | 1 + providers/dns/safedns/internal/client_test.go | 1 + providers/dns/versio/versio_test.go | 9 +- providers/dns/vinyldns/vinyldns_test.go | 9 +- providers/dns/vultr/vultr_test.go | 2 +- providers/dns/zoneee/zoneee_test.go | 1 + 26 files changed, 106 insertions(+), 76 deletions(-) rename providers/dns/acmedns/internal/fixtures/{request-body.json => fetch-request.json} (100%) rename providers/dns/acmedns/internal/fixtures/{fetch-all.json => fetch_all.json} (100%) create mode 100644 providers/dns/bindman/fixtures/add_record-request.json create mode 100644 providers/dns/bindman/fixtures/error.json diff --git a/providers/dns/acmedns/acmedns_test.go b/providers/dns/acmedns/acmedns_test.go index e50c89d56..a3ab59d59 100644 --- a/providers/dns/acmedns/acmedns_test.go +++ b/providers/dns/acmedns/acmedns_test.go @@ -167,11 +167,11 @@ func TestPresent_httpStorage(t *testing.T) { for _, test := range testCases { t.Run(test.desc, func(t *testing.T) { - config := servermock.NewBuilder(func(server *httptest.Server) (*Config, error) { - cfg := NewDefaultConfig() - cfg.StorageBaseURL = server.URL + provider := servermock.NewBuilder(func(server *httptest.Server) (*DNSProvider, error) { + config := NewDefaultConfig() + config.StorageBaseURL = server.URL - return cfg, nil + return NewDNSProviderConfig(config) }). // Fetch Route("GET /example.com", servermock.Noop().WithStatusCode(http.StatusNotFound)). @@ -179,15 +179,12 @@ func TestPresent_httpStorage(t *testing.T) { Route("POST /example.com", servermock.Noop().WithStatusCode(test.StatusCode)). Build(t) - p, err := NewDNSProviderConfig(config) - require.NoError(t, err) - client := newMockClient().WithRegisterAccount(egTestAccount) - p.client = client + provider.client = client - err = p.Present(egDomain, "foo", egKeyAuth) + err := provider.Present(egDomain, "foo", egKeyAuth) if test.ExpectedError != nil { - assert.Equal(t, test.ExpectedError, err) + assert.EqualError(t, err, test.ExpectedError.Error()) assert.True(t, client.registerAccountCalled) assert.False(t, client.updateTXTRecordCalled) } else { @@ -222,22 +219,19 @@ func TestRegister_httpStorage(t *testing.T) { for _, test := range testCases { t.Run(test.Name, func(t *testing.T) { - config := servermock.NewBuilder(func(server *httptest.Server) (*Config, error) { - cfg := NewDefaultConfig() - cfg.StorageBaseURL = server.URL + provider := servermock.NewBuilder(func(server *httptest.Server) (*DNSProvider, error) { + config := NewDefaultConfig() + config.StorageBaseURL = server.URL - return cfg, nil + return NewDNSProviderConfig(config) }). // Put Route("POST /example.com", servermock.Noop().WithStatusCode(test.StatusCode)). Build(t) - p, err := NewDNSProviderConfig(config) - require.NoError(t, err) + provider.client = newMockClient().WithRegisterAccount(egTestAccount) - p.client = newMockClient().WithRegisterAccount(egTestAccount) - - acc, err := p.register(t.Context(), egDomain, egFQDN) + acc, err := provider.register(t.Context(), egDomain, egFQDN) if test.ExpectedError != nil { assert.Equal(t, test.ExpectedError, err) } else { diff --git a/providers/dns/acmedns/internal/fixtures/request-body.json b/providers/dns/acmedns/internal/fixtures/fetch-request.json similarity index 100% rename from providers/dns/acmedns/internal/fixtures/request-body.json rename to providers/dns/acmedns/internal/fixtures/fetch-request.json diff --git a/providers/dns/acmedns/internal/fixtures/fetch-all.json b/providers/dns/acmedns/internal/fixtures/fetch_all.json similarity index 100% rename from providers/dns/acmedns/internal/fixtures/fetch-all.json rename to providers/dns/acmedns/internal/fixtures/fetch_all.json diff --git a/providers/dns/acmedns/internal/http_storage_test.go b/providers/dns/acmedns/internal/http_storage_test.go index abc3c0cde..5c166b47f 100644 --- a/providers/dns/acmedns/internal/http_storage_test.go +++ b/providers/dns/acmedns/internal/http_storage_test.go @@ -58,7 +58,7 @@ func TestHTTPStorage_Fetch_error(t *testing.T) { func TestHTTPStorage_FetchAll(t *testing.T) { storage := mockBuilder(). - Route("GET /", servermock.ResponseFromFixture("fetch-all.json")). + Route("GET /", servermock.ResponseFromFixture("fetch_all.json")). Build(t) account, err := storage.FetchAll(t.Context()) @@ -98,7 +98,7 @@ func TestHTTPStorage_FetchAll_error(t *testing.T) { func TestHTTPStorage_Put(t *testing.T) { storage := mockBuilder(). Route("POST /example.com", nil, - servermock.CheckRequestJSONBodyFromFixture("request-body.json")). + servermock.CheckRequestJSONBodyFromFixture("fetch-request.json")). Build(t) account := goacmedns.Account{ @@ -137,7 +137,7 @@ func TestHTTPStorage_Put_CNAME_created(t *testing.T) { Route("POST /example.com", servermock.Noop(). WithStatusCode(http.StatusCreated), - servermock.CheckRequestJSONBodyFromFixture("request-body.json")). + servermock.CheckRequestJSONBodyFromFixture("fetch-request.json")). Build(t) account := goacmedns.Account{ diff --git a/providers/dns/allinkl/internal/identity_test.go b/providers/dns/allinkl/internal/identity_test.go index dc55506f2..7b93b7688 100644 --- a/providers/dns/allinkl/internal/identity_test.go +++ b/providers/dns/allinkl/internal/identity_test.go @@ -13,6 +13,7 @@ import ( func setupIdentifierClient(server *httptest.Server) (*Identifier, error) { client := NewIdentifier("user", "secret") client.authEndpoint = server.URL + client.HTTPClient = server.Client() return client, nil } diff --git a/providers/dns/bindman/bindman_test.go b/providers/dns/bindman/bindman_test.go index a0db025e7..1f339dae8 100644 --- a/providers/dns/bindman/bindman_test.go +++ b/providers/dns/bindman/bindman_test.go @@ -2,13 +2,13 @@ package bindman import ( - "errors" "net/http" + "net/http/httptest" "testing" "time" "github.com/go-acme/lego/v4/platform/tester" - bindmanClient "github.com/labbsr0x/bindman-dns-webhook/src/client" + "github.com/go-acme/lego/v4/platform/tester/servermock" "github.com/stretchr/testify/require" ) @@ -106,10 +106,24 @@ func TestNewDNSProviderConfig(t *testing.T) { } } +func mockBuilder() *servermock.Builder[*DNSProvider] { + return servermock.NewBuilder( + func(server *httptest.Server) (*DNSProvider, error) { + config := NewDefaultConfig() + config.BaseURL = server.URL + config.HTTPClient = server.Client() + + return NewDNSProviderConfig(config) + }, + servermock.CheckHeader(). + WithJSONHeaders(). + With("User-Agent", "bindman-dns-webhook-client")) +} + func TestDNSProvider_Present(t *testing.T) { testCases := []struct { name string - client *bindmanClient.DNSWebhookClient + mock *servermock.Builder[*DNSProvider] domain string token string keyAuth string @@ -117,28 +131,31 @@ func TestDNSProvider_Present(t *testing.T) { }{ { name: "success when add record function return no error", - client: &bindmanClient.DNSWebhookClient{ - ClientAPI: &MockHTTPClientAPI{Status: http.StatusNoContent}, - }, - domain: "hello.test.com", + mock: mockBuilder(). + Route("POST /records", + servermock.Noop().WithStatusCode(http.StatusNoContent), + servermock.CheckRequestJSONBodyFromFixture("add_record-request.json"), + ), + domain: "example.com", keyAuth: "szDTG4zmM0GsKG91QAGO2M4UYOJMwU8oFpWOP7eTjCw", expectError: false, }, { name: "error when add record function return an error", - client: &bindmanClient.DNSWebhookClient{ - ClientAPI: &MockHTTPClientAPI{Error: errors.New("error adding record")}, - }, - domain: "hello.test.com", + mock: mockBuilder(). + Route("POST /records", + servermock.ResponseFromFixture("error.json"), + ), + domain: "example.com", keyAuth: "szDTG4zmM0GsKG91QAGO2M4UYOJMwU8oFpWOP7eTjCw", expectError: true, }, } for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - d := &DNSProvider{client: test.client} + provider := test.mock.Build(t) - err := d.Present(test.domain, test.token, test.keyAuth) + err := provider.Present(test.domain, test.token, test.keyAuth) if test.expectError { require.Error(t, err) } else { @@ -151,7 +168,7 @@ func TestDNSProvider_Present(t *testing.T) { func TestDNSProvider_CleanUp(t *testing.T) { testCases := []struct { name string - client *bindmanClient.DNSWebhookClient + mock *servermock.Builder[*DNSProvider] domain string token string keyAuth string @@ -159,30 +176,33 @@ func TestDNSProvider_CleanUp(t *testing.T) { }{ { name: "success when remove record function return no error", - client: &bindmanClient.DNSWebhookClient{ - ClientAPI: &MockHTTPClientAPI{Status: http.StatusNoContent}, - }, - domain: "hello.test.com", + mock: mockBuilder(). + Route("DELETE /records/_acme-challenge.example.com./TXT", + servermock.Noop().WithStatusCode(http.StatusNoContent), + ), + domain: "example.com", keyAuth: "szDTG4zmM0GsKG91QAGO2M4UYOJMwU8oFpWOP7eTjCw", expectError: false, }, { name: "error when remove record function return an error", - client: &bindmanClient.DNSWebhookClient{ - ClientAPI: &MockHTTPClientAPI{Error: errors.New("error adding record")}, - }, - domain: "hello.test.com", + mock: mockBuilder(). + Route("DELETE /records/_acme-challenge.example.com./TXT", + servermock.ResponseFromFixture("error.json"), + ), + domain: "example.com", keyAuth: "szDTG4zmM0GsKG91QAGO2M4UYOJMwU8oFpWOP7eTjCw", expectError: true, }, } + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - d := &DNSProvider{client: test.client} + provider := test.mock.Build(t) - err := d.CleanUp(test.domain, test.token, test.keyAuth) + err := provider.CleanUp(test.domain, test.token, test.keyAuth) if test.expectError { - require.Error(t, err) + require.ErrorContains(t, err, "bindman: ERROR (400): bar; ") } else { require.NoError(t, err) } @@ -217,25 +237,3 @@ func TestLiveCleanUp(t *testing.T) { err = provider.CleanUp(envTest.GetDomain(), "", "123d==") require.NoError(t, err) } - -type MockHTTPClientAPI struct { - Data []byte - Status int - Error error -} - -func (m *MockHTTPClientAPI) Put(url string, data []byte) (*http.Response, []byte, error) { - return &http.Response{StatusCode: m.Status}, m.Data, m.Error -} - -func (m *MockHTTPClientAPI) Post(url string, data []byte) (*http.Response, []byte, error) { - return &http.Response{StatusCode: m.Status}, m.Data, m.Error -} - -func (m *MockHTTPClientAPI) Get(url string) (*http.Response, []byte, error) { - return &http.Response{StatusCode: m.Status}, m.Data, m.Error -} - -func (m *MockHTTPClientAPI) Delete(url string) (*http.Response, []byte, error) { - return &http.Response{StatusCode: m.Status}, m.Data, m.Error -} diff --git a/providers/dns/bindman/fixtures/add_record-request.json b/providers/dns/bindman/fixtures/add_record-request.json new file mode 100644 index 000000000..9585565b8 --- /dev/null +++ b/providers/dns/bindman/fixtures/add_record-request.json @@ -0,0 +1,5 @@ +{ + "name": "_acme-challenge.example.com.", + "value": "_EYMkjukXEMcXbnvpT6WLESzfYhxH190NKTBo3cpu-E", + "type": "TXT" +} diff --git a/providers/dns/bindman/fixtures/error.json b/providers/dns/bindman/fixtures/error.json new file mode 100644 index 000000000..c8a014510 --- /dev/null +++ b/providers/dns/bindman/fixtures/error.json @@ -0,0 +1,5 @@ +{ + "message": "bar", + "code": 400, + "details": ["foo"] +} diff --git a/providers/dns/civo/civo_test.go b/providers/dns/civo/civo_test.go index eb215fbcb..9b9e98b38 100644 --- a/providers/dns/civo/civo_test.go +++ b/providers/dns/civo/civo_test.go @@ -132,6 +132,7 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.Token = "secret" p, err := NewDNSProviderConfig(config) diff --git a/providers/dns/cloudflare/cloudflare_test.go b/providers/dns/cloudflare/cloudflare_test.go index 10e96503a..14d20ef2d 100644 --- a/providers/dns/cloudflare/cloudflare_test.go +++ b/providers/dns/cloudflare/cloudflare_test.go @@ -304,6 +304,7 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { config.AuthEmail = "foo@example.com" config.AuthKey = "secret" config.BaseURL = server.URL + config.HTTPClient = server.Client() return NewDNSProviderConfig(config) }, diff --git a/providers/dns/gandi/gandi_test.go b/providers/dns/gandi/gandi_test.go index 6ed38c63c..46697190a 100644 --- a/providers/dns/gandi/gandi_test.go +++ b/providers/dns/gandi/gandi_test.go @@ -126,6 +126,7 @@ func TestDNSProvider(t *testing.T) { func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() config.BaseURL = server.URL + "/" + config.HTTPClient = server.Client() config.APIKey = "123412341234123412341234" return NewDNSProviderConfig(config) diff --git a/providers/dns/gandiv5/gandiv5_test.go b/providers/dns/gandiv5/gandiv5_test.go index 451b1b683..e0cdf86ff 100644 --- a/providers/dns/gandiv5/gandiv5_test.go +++ b/providers/dns/gandiv5/gandiv5_test.go @@ -96,6 +96,7 @@ func TestDNSProvider(t *testing.T) { config := NewDefaultConfig() config.PersonalAccessToken = "123412341234123412341234" config.BaseURL = server.URL + config.HTTPClient = server.Client() return NewDNSProviderConfig(config) }, diff --git a/providers/dns/gcloud/googlecloud_test.go b/providers/dns/gcloud/googlecloud_test.go index 61d5cc4e5..00d6c6c9a 100644 --- a/providers/dns/gcloud/googlecloud_test.go +++ b/providers/dns/gcloud/googlecloud_test.go @@ -352,7 +352,7 @@ func TestLiveCleanUp(t *testing.T) { func mockBuilder() *servermock.Builder[*DNSProvider] { return servermock.NewBuilder(func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() - config.HTTPClient = &http.Client{Timeout: 10 * time.Second} + config.HTTPClient = server.Client() config.Project = "manhattan" p, err := NewDNSProviderConfig(config) diff --git a/providers/dns/httpreq/httpreq_test.go b/providers/dns/httpreq/httpreq_test.go index 038b21b1a..a7571de22 100644 --- a/providers/dns/httpreq/httpreq_test.go +++ b/providers/dns/httpreq/httpreq_test.go @@ -227,6 +227,7 @@ func mockBuilder(mode string) *servermock.Builder[*DNSProvider] { return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.Endpoint, _ = url.Parse(server.URL) config.Mode = mode @@ -238,6 +239,7 @@ func mockBuilderWithPathPrefix(mode, prefix string) *servermock.Builder[*DNSProv return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.Endpoint, _ = url.Parse(server.URL + prefix) config.Mode = mode @@ -249,6 +251,7 @@ func mockBuilderWithBasicAuth(username, password string) *servermock.Builder[*DN return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.Endpoint, _ = url.Parse(server.URL) config.Username = username config.Password = password diff --git a/providers/dns/lightsail/lightsail_test.go b/providers/dns/lightsail/lightsail_test.go index 010e794a9..adac03d5d 100644 --- a/providers/dns/lightsail/lightsail_test.go +++ b/providers/dns/lightsail/lightsail_test.go @@ -60,6 +60,7 @@ func TestDNSProvider_Present(t *testing.T) { func(server *httptest.Server) (*DNSProvider, error) { return &DNSProvider{ client: lightsail.NewFromConfig(aws.Config{ + HTTPClient: server.Client(), Credentials: credentials.NewStaticCredentialsProvider("abc", "123", " "), Region: "mock-region", BaseEndpoint: aws.String(server.URL), diff --git a/providers/dns/loopia/internal/client_test.go b/providers/dns/loopia/internal/client_test.go index 63962b06e..fed7d94f1 100644 --- a/providers/dns/loopia/internal/client_test.go +++ b/providers/dns/loopia/internal/client_test.go @@ -15,6 +15,7 @@ func mockBuilder(password string) *servermock.Builder[*Client] { return servermock.NewBuilder[*Client]( func(server *httptest.Server) (*Client, error) { client := NewClient("apiuser", password) + client.HTTPClient = server.Client() client.BaseURL = server.URL + "/" return client, nil diff --git a/providers/dns/namecheap/namecheap_test.go b/providers/dns/namecheap/namecheap_test.go index 922e48ebb..e0c947095 100644 --- a/providers/dns/namecheap/namecheap_test.go +++ b/providers/dns/namecheap/namecheap_test.go @@ -1,10 +1,8 @@ package namecheap import ( - "net/http" "net/http/httptest" "testing" - "time" "github.com/go-acme/lego/v4/platform/tester/servermock" "github.com/stretchr/testify/assert" @@ -179,11 +177,11 @@ func Test_newPseudoRecord_domainSplit(t *testing.T) { func mockBuilder() *servermock.Builder[*DNSProvider] { return servermock.NewBuilder(func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.BaseURL = server.URL config.APIUser = envTestUser config.APIKey = envTestKey config.ClientIP = envTestClientIP - config.HTTPClient = &http.Client{Timeout: 60 * time.Second} return NewDNSProviderConfig(config) }) diff --git a/providers/dns/otc/otc_test.go b/providers/dns/otc/otc_test.go index 2174726c5..b5cb3a9d4 100644 --- a/providers/dns/otc/otc_test.go +++ b/providers/dns/otc/otc_test.go @@ -279,6 +279,7 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.UserName = "user" config.Password = "secret" config.DomainName = "example.com" diff --git a/providers/dns/rackspace/rackspace_test.go b/providers/dns/rackspace/rackspace_test.go index cefb46134..4f270ee6c 100644 --- a/providers/dns/rackspace/rackspace_test.go +++ b/providers/dns/rackspace/rackspace_test.go @@ -113,6 +113,7 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.APIUser = "testUser" config.APIKey = "testKey" config.HTTPClient = server.Client() diff --git a/providers/dns/regru/internal/client_test.go b/providers/dns/regru/internal/client_test.go index 0779f0d5f..002da0185 100644 --- a/providers/dns/regru/internal/client_test.go +++ b/providers/dns/regru/internal/client_test.go @@ -13,6 +13,7 @@ func mockBuilder() *servermock.Builder[*Client] { return servermock.NewBuilder[*Client]( func(server *httptest.Server) (*Client, error) { client := NewClient("user", "secret") + client.HTTPClient = server.Client() client.baseURL, _ = url.Parse(server.URL) return client, nil diff --git a/providers/dns/route53/route53_test.go b/providers/dns/route53/route53_test.go index 6079bb4e6..a0fac49e8 100644 --- a/providers/dns/route53/route53_test.go +++ b/providers/dns/route53/route53_test.go @@ -146,6 +146,7 @@ func TestDNSProvider_Present(t *testing.T) { provider := servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { cfg := aws.Config{ + HTTPClient: server.Client(), Credentials: credentials.NewStaticCredentialsProvider("abc", "123", " "), Region: "mock-region", BaseEndpoint: aws.String(server.URL), diff --git a/providers/dns/safedns/internal/client_test.go b/providers/dns/safedns/internal/client_test.go index f984d2d8f..161a9f078 100644 --- a/providers/dns/safedns/internal/client_test.go +++ b/providers/dns/safedns/internal/client_test.go @@ -17,6 +17,7 @@ func mockBuilder() *servermock.Builder[*Client] { func(server *httptest.Server) (*Client, error) { client := NewClient("secret") client.baseURL, _ = url.Parse(server.URL) + client.HTTPClient = server.Client() return client, nil }, diff --git a/providers/dns/versio/versio_test.go b/providers/dns/versio/versio_test.go index ea1ccc221..9e3db8b0d 100644 --- a/providers/dns/versio/versio_test.go +++ b/providers/dns/versio/versio_test.go @@ -252,6 +252,13 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { EnvEndpoint: server.URL, }) - return NewDNSProvider() + provider, err := NewDNSProvider() + if err != nil { + return nil, err + } + + provider.client.HTTPClient = server.Client() + + return provider, nil }) } diff --git a/providers/dns/vinyldns/vinyldns_test.go b/providers/dns/vinyldns/vinyldns_test.go index 6f5b9b328..05a6cf0df 100644 --- a/providers/dns/vinyldns/vinyldns_test.go +++ b/providers/dns/vinyldns/vinyldns_test.go @@ -163,7 +163,14 @@ func mockBuilder() *servermock.Builder[*DNSProvider] { config.SecretKey = "bar" config.Host = server.URL - return NewDNSProviderConfig(config) + provider, err := NewDNSProviderConfig(config) + if err != nil { + return nil, err + } + + provider.client.HTTPClient = server.Client() + + return provider, nil }) } diff --git a/providers/dns/vultr/vultr_test.go b/providers/dns/vultr/vultr_test.go index 9be1a19b0..f8b8fcd1f 100644 --- a/providers/dns/vultr/vultr_test.go +++ b/providers/dns/vultr/vultr_test.go @@ -164,7 +164,7 @@ func TestDNSProvider_getHostedZone(t *testing.T) { provider := servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { - client := govultr.NewClient(nil) + client := govultr.NewClient(server.Client()) err := client.SetBaseURL(server.URL) require.NoError(t, err) diff --git a/providers/dns/zoneee/zoneee_test.go b/providers/dns/zoneee/zoneee_test.go index 6f50cf36e..32090a41b 100644 --- a/providers/dns/zoneee/zoneee_test.go +++ b/providers/dns/zoneee/zoneee_test.go @@ -273,6 +273,7 @@ func mockBuilder(username, apiKey string) *servermock.Builder[*DNSProvider] { return servermock.NewBuilder( func(server *httptest.Server) (*DNSProvider, error) { config := NewDefaultConfig() + config.HTTPClient = server.Client() config.Endpoint, _ = url.Parse(server.URL) config.Username = username config.APIKey = apiKey