Documentation
¶
Overview ¶
Package testutil provides test environment setup and utilities for internal package tests.
Index ¶
- func ExpectRedirect(t *testing.T, result HTTPResult) string
- func ExpectStatus(t *testing.T, expected int, result HTTPResult)
- type HTTPResult
- func Get(router http.Handler, url string, response any, headers ...Header) HTTPResult
- func Post(router http.Handler, url string, body string, response any, headers ...Header) HTTPResult
- func PostForm(router http.Handler, urlPath string, values url.Values, response any) HTTPResult
- func PostJSON(router http.Handler, urlPath string, body string, response any) HTTPResult
- type Header
- type TestEnv
- func (env *TestEnv) IssueTestAccessToken(t *testing.T, subject string, audience []string) *tokens.AccessToken
- func (env *TestEnv) IssueTestRefreshToken(t *testing.T, subject string, audience []string) *tokens.RefreshToken
- func (env *TestEnv) RegisterTestUser(t *testing.T, handle string, password string)
- func (env *TestEnv) StoreTestRefreshToken(t *testing.T, handle string, audience []string) *tokens.RefreshToken
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExpectRedirect ¶
func ExpectRedirect( t *testing.T, result HTTPResult, ) string
ExpectRedirect validates a redirect response and returns the Location header
func ExpectStatus ¶
func ExpectStatus( t *testing.T, expected int, result HTTPResult, )
ExpectStatus validates the HTTP status code and fails the test if it doesn't match
Types ¶
type HTTPResult ¶
HTTPResult captures HTTP response details for test assertions
func Post ¶
func Post( router http.Handler, url string, body string, response any, headers ...Header, ) HTTPResult
Post performs a POST request and optionally decodes JSON response
type Header ¶
Header represents an HTTP header key-value pair
func ContentTypeForm ¶
func ContentTypeForm() Header
ContentTypeForm returns a header for form-urlencoded content type
func ContentTypeJSON ¶
func ContentTypeJSON() Header
ContentTypeJSON returns a header for JSON content type
type TestEnv ¶
type TestEnv struct {
DB *database.SQLiteStore
Service *service.Service
Router http.Handler
TokenIssuer tokens.Issuer
TokenValidator tokens.Validator
}
TestEnv provides all dependencies needed for testing
func SetupTestEnv ¶
SetupTestEnv creates an isolated test environment with in-memory SQLite
func SetupTestEnvWithRouter ¶
SetupTestEnvWithRouter creates TestEnv and configures the API router
func (*TestEnv) IssueTestAccessToken ¶
func (env *TestEnv) IssueTestAccessToken( t *testing.T, subject string, audience []string, ) *tokens.AccessToken
IssueTestAccessToken creates an access token for testing
func (*TestEnv) IssueTestRefreshToken ¶
func (env *TestEnv) IssueTestRefreshToken( t *testing.T, subject string, audience []string, ) *tokens.RefreshToken
IssueTestRefreshToken creates a refresh token for testing
func (*TestEnv) RegisterTestUser ¶
RegisterTestUser creates a test user in the database
func (*TestEnv) StoreTestRefreshToken ¶
func (env *TestEnv) StoreTestRefreshToken( t *testing.T, handle string, audience []string, ) *tokens.RefreshToken
StoreTestRefreshToken issues and stores a refresh token in the database