Documentation
¶
Index ¶
- Constants
- Variables
- func AssertJSONResponse(t *testing.T, w *httptest.ResponseRecorder, expectedStatus int) map[string]interface{}
- func AuthHeaders(token string) map[string]string
- func MakeRequest(t *testing.T, router *gin.Engine, method, url string, body interface{}, ...) *httptest.ResponseRecorder
- func MockCreateUserRequest() map[string]interface{}
- func MockCustomerAdmin() *models.User
- func MockDistributorAdmin() *models.User
- func MockEnvironment(t *testing.T)
- func MockHTTPServer(t *testing.T, handler http.HandlerFunc) *httptest.Server
- func MockJWTToken(userID, orgID string, exp int64) string
- func MockLogtoHTTPServer(t *testing.T) *httptest.Server
- func MockOwnerUser() *models.User
- func MockResellerAdmin() *models.User
- func MockSupportUser() *models.User
- func MockUser(userID, orgID string, userRoles, orgRoles []string, ...) *models.User
- func SetupTestGin() *gin.Engine
- type MockLogtoService
Constants ¶
const ( ValidJWTToken = "" /* 168-byte string literal not displayed */ ExpiredJWTToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0LXVzZXIiLCJleHAiOjEsInVzZXJfaWQiOiJ0ZXN0LXVzZXIifQ.test-signature" InvalidJWTToken = "invalid.jwt.token" MalformedJWTToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.invalid-payload.signature" )
Test JWT tokens for different scenarios
Variables ¶
var LogtoMockResponses = struct { UserInfo string Roles string Organizations string }{ UserInfo: `{ "sub": "test-user-id", "username": "test-user", "email": "test@example.com", "name": "Test User", "custom_data": { "organizationId": "test-org-id" } }`, Roles: `{ "data": [ { "id": "admin-role-id", "name": "Admin", "description": "Administrator role" }, { "id": "support-role-id", "name": "Support", "description": "Support role" } ] }`, Organizations: `{ "data": [ { "id": "test-org-id", "name": "Test Organization", "custom_data": { "role": "Customer" } } ] }`, }
LogtoMockResponses contains mock responses for Logto API
Functions ¶
func AssertJSONResponse ¶
func AssertJSONResponse(t *testing.T, w *httptest.ResponseRecorder, expectedStatus int) map[string]interface{}
AssertJSONResponse checks if response is valid JSON and matches expected status
func AuthHeaders ¶
AuthHeaders creates authorization headers for testing
func MakeRequest ¶
func MakeRequest(t *testing.T, router *gin.Engine, method, url string, body interface{}, headers map[string]string) *httptest.ResponseRecorder
MakeRequest performs an HTTP request for testing
func MockCreateUserRequest ¶
func MockCreateUserRequest() map[string]interface{}
MockCreateUserRequest creates a test user creation request
func MockCustomerAdmin ¶
MockCustomerAdmin creates a customer admin user
func MockDistributorAdmin ¶
MockDistributorAdmin creates a distributor admin user
func MockEnvironment ¶
MockEnvironment sets up test environment variables
func MockHTTPServer ¶
MockHTTPServer creates a test HTTP server for external API mocking
func MockJWTToken ¶
MockJWTToken generates a simple mock JWT for testing (not cryptographically valid)
func MockLogtoHTTPServer ¶
MockLogtoHTTPServer creates a mock HTTP server that simulates Logto API responses
func MockOwnerUser ¶
MockOwnerUser creates a user with Owner role and all permissions
func MockResellerAdmin ¶
MockResellerAdmin creates a reseller admin user
func MockSupportUser ¶
MockSupportUser creates a support user with limited permissions
Types ¶
type MockLogtoService ¶
MockLogtoService is a mock implementation of Logto service functions
func (*MockLogtoService) EnrichUserWithRolesAndPermissions ¶
func (m *MockLogtoService) EnrichUserWithRolesAndPermissions(user *models.User) error
MockEnrichUserWithRolesAndPermissions simulates enriching user with roles and permissions
func (*MockLogtoService) GetUserInfoFromLogto ¶
func (m *MockLogtoService) GetUserInfoFromLogto(accessToken string) (*models.User, error)
MockGetUserInfoFromLogto simulates fetching user info from Logto