Files
Stevan Freeborn a9e49906e0 feat: initialize client core and ping endpoint
establishes the foundational architecture for the Onspring Go SDK.

changes included:
- add `Client` struct and `NewClient` constructor with authentication.
- implement functional options pattern (WithHTTPClient, WithBaseURL, etc.).
- add `OnspringAPIError` type for handling non-2xx responses.
- implement internal request construction and execution logic.
- add `Ping` service for API health check verification.
- add comprehensive unit tests and mock server infrastructure.
2025-12-05 21:33:23 -06:00

35 lines
665 B
Go

package onspring_test
import (
"errors"
"net/http"
"net/http/httptest"
"testing"
"github.com/StevanFreeborn/onspring-api-sdk-go"
)
func setupMockServer(t *testing.T, handler http.HandlerFunc) (*httptest.Server, *onspring.Client) {
t.Helper()
server := httptest.NewServer(handler)
t.Cleanup(func() {
server.Close()
})
client := onspring.NewClient(
"test-key",
onspring.WithBaseURL(server.URL),
onspring.WithHTTPClient(server.Client()),
)
return server, client
}
type ErrorTransport struct{}
func (t *ErrorTransport) RoundTrip(req *http.Request) (*http.Response, error) {
return nil, errors.New("simulated network connection failure")
}