mirror of
https://github.com/go-acme/lego
synced 2026-03-14 14:35:48 +01:00
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package internal
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func setupTest(t *testing.T, message string) *Client {
|
|
t.Helper()
|
|
|
|
mux := http.NewServeMux()
|
|
server := httptest.NewServer(mux)
|
|
t.Cleanup(server.Close)
|
|
|
|
client, err := NewClient("user", "secret")
|
|
require.NoError(t, err)
|
|
|
|
client.HTTPClient = server.Client()
|
|
client.baseURL = server.URL
|
|
|
|
mux.HandleFunc("GET /", func(rw http.ResponseWriter, req *http.Request) {
|
|
query := req.URL.Query()
|
|
|
|
username := query.Get("username")
|
|
if username != "user" {
|
|
http.Error(rw, "invalid username: "+username, http.StatusUnauthorized)
|
|
return
|
|
}
|
|
|
|
password := query.Get("password")
|
|
if password != "secret" {
|
|
http.Error(rw, "invalid password: "+password, http.StatusUnauthorized)
|
|
return
|
|
}
|
|
|
|
_, _ = rw.Write([]byte(message))
|
|
})
|
|
|
|
return client
|
|
}
|
|
|
|
func TestAddTXTRecord(t *testing.T) {
|
|
client := setupTest(t, "success")
|
|
|
|
err := client.AddTXTRecord(t.Context(), "example.com", "sub.example.com", "value")
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestAddTXTRecord_error(t *testing.T) {
|
|
client := setupTest(t, "error: authentification failed")
|
|
|
|
err := client.AddTXTRecord(t.Context(), "example.com", "sub.example.com", "value")
|
|
require.EqualError(t, err, "error: authentification failed")
|
|
}
|