tests: change the signature of the method BuildHTTPS (#2611)
Some checks failed
Documentation / Build and deploy documentation (push) Has been cancelled
Go Matrix / Go (oldstable, macos-latest) (push) Has been cancelled
Go Matrix / Go (oldstable, ubuntu-latest) (push) Has been cancelled
Go Matrix / Go (oldstable, windows-latest) (push) Has been cancelled
Go Matrix / Go (stable, macos-latest) (push) Has been cancelled
Go Matrix / Go (stable, ubuntu-latest) (push) Has been cancelled
Go Matrix / Go (stable, windows-latest) (push) Has been cancelled
Main / Main Process (push) Has been cancelled

This commit is contained in:
Ludovic Fernandez
2025-08-04 12:21:14 +02:00
committed by GitHub
parent c9157f756e
commit 756d5ade0e
14 changed files with 66 additions and 64 deletions

View File

@@ -73,34 +73,34 @@ rzFL1KZfz+HZdnFwFW2T2gVW8L3ii1l9AJDuKzlvjUH3p6bgihVq02sjT8mx+GM2
` `
func TestCertificateService_Get_issuerRelUp(t *testing.T) { func TestCertificateService_Get_issuerRelUp(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", servermock.RawStringResponse(certResponseMock)). Route("POST /certificate", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := New(client, "lego-test", apiURL+"/dir", "", key) core, err := New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
cert, issuer, err := core.Certificates.Get(apiURL+"/certificate", true) cert, issuer, err := core.Certificates.Get(server.URL+"/certificate", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, certResponseMock, string(cert), "Certificate") assert.Equal(t, certResponseMock, string(cert), "Certificate")
assert.Equal(t, issuerMock, string(issuer), "IssuerCertificate") assert.Equal(t, issuerMock, string(issuer), "IssuerCertificate")
} }
func TestCertificateService_Get_embeddedIssuer(t *testing.T) { func TestCertificateService_Get_embeddedIssuer(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", servermock.RawStringResponse(certResponseMock)). Route("POST /certificate", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := New(client, "lego-test", apiURL+"/dir", "", key) core, err := New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
cert, issuer, err := core.Certificates.Get(apiURL+"/certificate", true) cert, issuer, err := core.Certificates.Get(server.URL+"/certificate", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, certResponseMock, string(cert), "Certificate") assert.Equal(t, certResponseMock, string(cert), "Certificate")
assert.Equal(t, issuerMock, string(issuer), "IssuerCertificate") assert.Equal(t, issuerMock, string(issuer), "IssuerCertificate")

View File

@@ -12,7 +12,7 @@ import (
) )
func TestNotHoldingLockWhileMakingHTTPRequests(t *testing.T) { func TestNotHoldingLockWhileMakingHTTPRequests(t *testing.T) {
manager, _ := servermock.NewBuilder( manager := servermock.NewBuilder(
func(server *httptest.Server) (*Manager, error) { func(server *httptest.Server) (*Manager, error) {
doer := sender.NewDoer(server.Client(), "lego-test") doer := sender.NewDoer(server.Client(), "lego-test")

View File

@@ -13,7 +13,7 @@ import (
) )
func TestNotHoldingLockWhileMakingHTTPRequests(t *testing.T) { func TestNotHoldingLockWhileMakingHTTPRequests(t *testing.T) {
manager, _ := servermock.NewBuilder( manager := servermock.NewBuilder(
func(server *httptest.Server) (*nonces.Manager, error) { func(server *httptest.Server) (*nonces.Manager, error) {
doer := sender.NewDoer(server.Client(), "lego-test") doer := sender.NewDoer(server.Client(), "lego-test")

View File

@@ -22,7 +22,7 @@ func TestOrderService_NewWithOptions(t *testing.T) {
privateKey, errK := rsa.GenerateKey(rand.Reader, 1024) privateKey, errK := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, errK, "Could not generate test key") require.NoError(t, errK, "Could not generate test key")
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /newOrder", Route("POST /newOrder",
http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
body, err := readSignedBody(req, privateKey) body, err := readSignedBody(req, privateKey)
@@ -54,7 +54,7 @@ func TestOrderService_NewWithOptions(t *testing.T) {
})). })).
BuildHTTPS(t) BuildHTTPS(t)
core, err := New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {

View File

@@ -175,14 +175,14 @@ Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
` `
func Test_checkResponse(t *testing.T) { func Test_checkResponse(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", servermock.RawStringResponse(certResponseMock)). Route("POST /certificate", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
@@ -190,7 +190,7 @@ func Test_checkResponse(t *testing.T) {
order := acme.ExtendedOrder{ order := acme.ExtendedOrder{
Order: acme.Order{ Order: acme.Order{
Status: acme.StatusValid, Status: acme.StatusValid,
Certificate: apiURL + "/certificate", Certificate: server.URL + "/certificate",
}, },
} }
certRes := &Resource{} certRes := &Resource{}
@@ -209,14 +209,14 @@ func Test_checkResponse(t *testing.T) {
} }
func Test_checkResponse_issuerRelUp(t *testing.T) { func Test_checkResponse_issuerRelUp(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", servermock.RawStringResponse(certResponseMock)). Route("POST /certificate", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
@@ -224,7 +224,7 @@ func Test_checkResponse_issuerRelUp(t *testing.T) {
order := acme.ExtendedOrder{ order := acme.ExtendedOrder{
Order: acme.Order{ Order: acme.Order{
Status: acme.StatusValid, Status: acme.StatusValid,
Certificate: apiURL + "/certificate", Certificate: server.URL + "/certificate",
}, },
} }
certRes := &Resource{} certRes := &Resource{}
@@ -243,14 +243,14 @@ func Test_checkResponse_issuerRelUp(t *testing.T) {
} }
func Test_checkResponse_no_bundle(t *testing.T) { func Test_checkResponse_no_bundle(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", servermock.RawStringResponse(certResponseMock)). Route("POST /certificate", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
@@ -258,7 +258,7 @@ func Test_checkResponse_no_bundle(t *testing.T) {
order := acme.ExtendedOrder{ order := acme.ExtendedOrder{
Order: acme.Order{ Order: acme.Order{
Status: acme.StatusValid, Status: acme.StatusValid,
Certificate: apiURL + "/certificate", Certificate: server.URL + "/certificate",
}, },
} }
certRes := &Resource{} certRes := &Resource{}
@@ -277,7 +277,7 @@ func Test_checkResponse_no_bundle(t *testing.T) {
} }
func Test_checkResponse_alternate(t *testing.T) { func Test_checkResponse_alternate(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /certificate", Route("POST /certificate",
http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
rw.Header().Add("Link", rw.Header().Add("Link",
@@ -291,7 +291,7 @@ func Test_checkResponse_alternate(t *testing.T) {
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
@@ -299,7 +299,7 @@ func Test_checkResponse_alternate(t *testing.T) {
order := acme.ExtendedOrder{ order := acme.ExtendedOrder{
Order: acme.Order{ Order: acme.Order{
Status: acme.StatusValid, Status: acme.StatusValid,
Certificate: apiURL + "/certificate", Certificate: server.URL + "/certificate",
}, },
} }
certRes := &Resource{ certRes := &Resource{
@@ -321,25 +321,25 @@ func Test_checkResponse_alternate(t *testing.T) {
} }
func Test_Get(t *testing.T) { func Test_Get(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /acme/cert/test-cert", servermock.RawStringResponse(certResponseMock)). Route("POST /acme/cert/test-cert", servermock.RawStringResponse(certResponseMock)).
BuildHTTPS(t) BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
certRes, err := certifier.Get(apiURL+"/acme/cert/test-cert", true) certRes, err := certifier.Get(server.URL+"/acme/cert/test-cert", true)
require.NoError(t, err) require.NoError(t, err)
assert.NotNil(t, certRes) assert.NotNil(t, certRes)
assert.Equal(t, "acme.wtf", certRes.Domain) assert.Equal(t, "acme.wtf", certRes.Domain)
assert.Equal(t, apiURL+"/acme/cert/test-cert", certRes.CertStableURL) assert.Equal(t, server.URL+"/acme/cert/test-cert", certRes.CertStableURL)
assert.Equal(t, apiURL+"/acme/cert/test-cert", certRes.CertURL) assert.Equal(t, server.URL+"/acme/cert/test-cert", certRes.CertURL)
assert.Nil(t, certRes.CSR) assert.Nil(t, certRes.CSR)
assert.Nil(t, certRes.PrivateKey) assert.Nil(t, certRes.PrivateKey)
assert.Equal(t, certResponseMock, string(certRes.Certificate), "Certificate") assert.Equal(t, certResponseMock, string(certRes.Certificate), "Certificate")

View File

@@ -43,7 +43,7 @@ func TestCertifier_GetRenewalInfo(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
// Test with a fake API. // Test with a fake API.
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("GET /renewalInfo/"+ariLeafCertID, Route("GET /renewalInfo/"+ariLeafCertID,
servermock.RawStringResponse(`{ servermock.RawStringResponse(`{
"suggestedWindow": { "suggestedWindow": {
@@ -60,7 +60,7 @@ func TestCertifier_GetRenewalInfo(t *testing.T) {
key, err := rsa.GenerateKey(rand.Reader, 2048) key, err := rsa.GenerateKey(rand.Reader, 2048)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})
@@ -110,15 +110,17 @@ func TestCertifier_GetRenewalInfo_errors(t *testing.T) {
t.Run(test.desc, func(t *testing.T) { t.Run(test.desc, func(t *testing.T) {
t.Parallel() t.Parallel()
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("GET /renewalInfo/"+ariLeafCertID, test.handler). Route("GET /renewalInfo/"+ariLeafCertID, test.handler).
BuildHTTPS(t) BuildHTTPS(t)
client := server.Client()
if test.timeout != 0 { if test.timeout != 0 {
client.Timeout = test.timeout client.Timeout = test.timeout
} }
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(client, "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048}) certifier := NewCertifier(core, &resolverMock{}, CertifierOptions{KeyType: certcrypto.RSA2048})

View File

@@ -31,12 +31,12 @@ func (p *providerTimeoutMock) CleanUp(domain, token, keyAuth string) error { ret
func (p *providerTimeoutMock) Timeout() (time.Duration, time.Duration) { return p.timeout, p.interval } func (p *providerTimeoutMock) Timeout() (time.Duration, time.Duration) { return p.timeout, p.interval }
func TestChallenge_PreSolve(t *testing.T) { func TestChallenge_PreSolve(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {
@@ -113,12 +113,12 @@ func TestChallenge_PreSolve(t *testing.T) {
} }
func TestChallenge_Solve(t *testing.T) { func TestChallenge_Solve(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {
@@ -200,12 +200,12 @@ func TestChallenge_Solve(t *testing.T) {
} }
func TestChallenge_CleanUp(t *testing.T) { func TestChallenge_CleanUp(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {

View File

@@ -67,7 +67,7 @@ func TestProviderServer_GetAddress(t *testing.T) {
} }
func TestChallenge(t *testing.T) { func TestChallenge(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
providerServer := NewProviderServer("", "23457") providerServer := NewProviderServer("", "23457")
@@ -100,7 +100,7 @@ func TestChallenge(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge(core, validate, providerServer) solver := NewChallenge(core, validate, providerServer)
@@ -123,7 +123,7 @@ func TestChallengeUnix(t *testing.T) {
t.Skip("only for UNIX systems") t.Skip("only for UNIX systems")
} }
apiURL, httpsClient := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
dir := t.TempDir() dir := t.TempDir()
t.Cleanup(func() { _ = os.RemoveAll(dir) }) t.Cleanup(func() { _ = os.RemoveAll(dir) })
@@ -169,7 +169,7 @@ func TestChallengeUnix(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(httpsClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge(core, validate, providerServer) solver := NewChallenge(core, validate, providerServer)
@@ -188,12 +188,12 @@ func TestChallengeUnix(t *testing.T) {
} }
func TestChallengeInvalidPort(t *testing.T) { func TestChallengeInvalidPort(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
validate := func(_ *api.Core, _ string, _ acme.Challenge) error { return nil } validate := func(_ *api.Core, _ string, _ acme.Challenge) error { return nil }
@@ -371,7 +371,7 @@ func TestChallengeWithProxy(t *testing.T) {
func testServeWithProxy(t *testing.T, header, extra *testProxyHeader, expectError bool) { func testServeWithProxy(t *testing.T, header, extra *testProxyHeader, expectError bool) {
t.Helper() t.Helper()
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
providerServer := NewProviderServer("localhost", "23457") providerServer := NewProviderServer("localhost", "23457")
if header != nil { if header != nil {
@@ -414,7 +414,7 @@ func testServeWithProxy(t *testing.T, header, extra *testProxyHeader, expectErro
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge(core, validate, providerServer) solver := NewChallenge(core, validate, providerServer)

View File

@@ -37,7 +37,7 @@ func TestValidate(t *testing.T) {
privateKey, _ := rsa.GenerateKey(rand.Reader, 1024) privateKey, _ := rsa.GenerateKey(rand.Reader, 1024)
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("POST /chlg", Route("POST /chlg",
http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
if err := validateNoBody(privateKey, req); err != nil { if err := validateNoBody(privateKey, req); err != nil {
@@ -76,7 +76,7 @@ func TestValidate(t *testing.T) {
})). })).
BuildHTTPS(t) BuildHTTPS(t)
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {
@@ -118,7 +118,7 @@ func TestValidate(t *testing.T) {
t.Run(test.name, func(t *testing.T) { t.Run(test.name, func(t *testing.T) {
statuses = test.statuses statuses = test.statuses
err := validate(core, "example.com", acme.Challenge{Type: "http-01", Token: "token", URL: apiURL + "/chlg"}) err := validate(core, "example.com", acme.Challenge{Type: "http-01", Token: "token", URL: server.URL + "/chlg"})
if test.want == "" { if test.want == "" {
require.NoError(t, err) require.NoError(t, err)
} else { } else {

View File

@@ -20,7 +20,7 @@ import (
) )
func TestChallenge(t *testing.T) { func TestChallenge(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
domain := "localhost" domain := "localhost"
port := "24457" port := "24457"
@@ -68,7 +68,7 @@ func TestChallenge(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge( solver := NewChallenge(
@@ -92,12 +92,12 @@ func TestChallenge(t *testing.T) {
} }
func TestChallengeInvalidPort(t *testing.T) { func TestChallengeInvalidPort(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge( solver := NewChallenge(
@@ -122,7 +122,7 @@ func TestChallengeInvalidPort(t *testing.T) {
} }
func TestChallengeIPaddress(t *testing.T) { func TestChallengeIPaddress(t *testing.T) {
apiURL, client := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
domain := "127.0.0.1" domain := "127.0.0.1"
port := "24457" port := "24457"
@@ -169,7 +169,7 @@ func TestChallengeIPaddress(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 1024) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(client, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", privateKey)
require.NoError(t, err) require.NoError(t, err)
solver := NewChallenge( solver := NewChallenge(

View File

@@ -13,7 +13,7 @@ import (
) )
func TestNewClient(t *testing.T) { func TestNewClient(t *testing.T) {
apiURL, httpsClient := tester.MockACMEServer().BuildHTTPS(t) server := tester.MockACMEServer().BuildHTTPS(t)
key, err := rsa.GenerateKey(rand.Reader, 1024) key, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
@@ -25,8 +25,8 @@ func TestNewClient(t *testing.T) {
} }
config := NewConfig(user) config := NewConfig(user)
config.CADirURL = apiURL + "/dir" config.CADirURL = server.URL + "/dir"
config.HTTPClient = httpsClient config.HTTPClient = server.Client()
client, err := NewClient(config) client, err := NewClient(config)
require.NoError(t, err, "Could not create client") require.NoError(t, err, "Could not create client")

View File

@@ -11,10 +11,10 @@ import (
) )
// MockACMEServer Minimal stub ACME server for validation. // MockACMEServer Minimal stub ACME server for validation.
func MockACMEServer() *servermock.Builder[string] { func MockACMEServer() *servermock.Builder[*httptest.Server] {
return servermock.NewBuilder( return servermock.NewBuilder(
func(server *httptest.Server) (string, error) { func(server *httptest.Server) (*httptest.Server, error) {
return server.URL, nil return server, nil
}). }).
Route("GET /dir", http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { Route("GET /dir", http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
serverURL := fmt.Sprintf("https://%s", req.Context().Value(http.LocalAddrContextKey)) serverURL := fmt.Sprintf("https://%s", req.Context().Value(http.LocalAddrContextKey))

View File

@@ -71,7 +71,7 @@ func (b *Builder[T]) Build(t *testing.T) T {
return client return client
} }
func (b *Builder[T]) BuildHTTPS(t *testing.T) (T, *http.Client) { func (b *Builder[T]) BuildHTTPS(t *testing.T) T {
t.Helper() t.Helper()
server := httptest.NewTLSServer(b.mux) server := httptest.NewTLSServer(b.mux)
@@ -80,5 +80,5 @@ func (b *Builder[T]) BuildHTTPS(t *testing.T) (T, *http.Client) {
client, err := b.clientBuilder(server) client, err := b.clientBuilder(server)
require.NoError(t, err) require.NoError(t, err)
return client, server.Client() return client
} }

View File

@@ -16,7 +16,7 @@ import (
) )
func TestRegistrar_ResolveAccountByKey(t *testing.T) { func TestRegistrar_ResolveAccountByKey(t *testing.T) {
apiURL, client := tester.MockACMEServer(). server := tester.MockACMEServer().
Route("/account", Route("/account",
http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
rw.Header().Set("Location", rw.Header().Set("Location",
@@ -35,7 +35,7 @@ func TestRegistrar_ResolveAccountByKey(t *testing.T) {
privatekey: key, privatekey: key,
} }
core, err := api.New(client, "lego-test", apiURL+"/dir", "", key) core, err := api.New(server.Client(), "lego-test", server.URL+"/dir", "", key)
require.NoError(t, err) require.NoError(t, err)
registrar := NewRegistrar(core, user) registrar := NewRegistrar(core, user)