test: add comprehensive test coverage and improve code quality

- Add new test files for auth, service, and handler modules
- Improve test organization and coverage
- Refactor code for better maintainability
- Add captcha, settings, stats, and theme handler tests
- Add auth module tests (CAS, OAuth, password, SSO, state)
- Add service layer tests for auth, export, permissions, roles
- All Go tests pass (exit code 0)
- All frontend tests pass (325 tests in 59 files)
This commit is contained in:
2026-04-17 20:43:50 +08:00
parent 0d66aa0423
commit 582ad7a069
136 changed files with 19010 additions and 8544 deletions

68
coverage_func.txt Normal file
View File

@@ -0,0 +1,68 @@
github.com/user-management-system/internal/api/middleware/auth.go:32: NewAuthMiddleware 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:52: SetCacheManager 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:56: Required 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:96: Optional 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:115: isJTIBlacklisted 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:144: loadUserRolesAndPerms 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:176: InvalidateUserPermCache 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:180: AddToBlacklist 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:186: isUserActive 0.0%
github.com/user-management-system/internal/api/middleware/auth.go:199: extractToken 0.0%
github.com/user-management-system/internal/api/middleware/cache_control.go:12: NoStoreSensitiveResponses 100.0%
github.com/user-management-system/internal/api/middleware/cache_control.go:26: shouldDisableCaching 100.0%
github.com/user-management-system/internal/api/middleware/cors.go:17: SetCORSConfig 100.0%
github.com/user-management-system/internal/api/middleware/cors.go:21: CORS 71.4%
github.com/user-management-system/internal/api/middleware/cors.go:54: resolveAllowedOrigin 50.0%
github.com/user-management-system/internal/api/middleware/error.go:12: ErrorHandler 0.0%
github.com/user-management-system/internal/api/middleware/error.go:33: Recover 0.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:25: NewIPFilterMiddleware 100.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:31: Filter 100.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:51: GetFilter 100.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:58: realIP 11.1%
github.com/user-management-system/internal/api/middleware/ip_filter.go:98: isTrustedProxy 0.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:112: InternalOnly 0.0%
github.com/user-management-system/internal/api/middleware/ip_filter.go:127: isPrivateIP 0.0%
github.com/user-management-system/internal/api/middleware/logger.go:20: Logger 0.0%
github.com/user-management-system/internal/api/middleware/logger.go:60: sanitizeQuery 88.9%
github.com/user-management-system/internal/api/middleware/logger.go:79: isSensitiveQueryKey 100.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:20: NewOperationLogMiddleware 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:29: newBodyWriter 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:33: WriteHeader 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:38: WriteHeaderNow 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:42: Record 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:98: methodToType 0.0%
github.com/user-management-system/internal/api/middleware/operation_log.go:111: sanitizeParams 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:28: NewSlidingWindowLimiter 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:37: Allow 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:63: NewRateLimitMiddleware 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:72: Register 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:77: Login 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:82: API 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:87: Refresh 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:91: limitForKey 0.0%
github.com/user-management-system/internal/api/middleware/ratelimit.go:107: getOrCreateLimiter 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:17: RequirePermission 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:32: RequireAllPermissions 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:47: RequireRole 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:62: RequireAnyPermission 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:67: AdminOnly 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:72: GetRoleCodes 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:84: GetPermissionCodes 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:96: IsAdmin 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:101: hasAnyPermission 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:120: hasAllPermissions 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:135: hasAnyRole 0.0%
github.com/user-management-system/internal/api/middleware/rbac.go:150: toSet 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:20: Write 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:26: WriteString 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:31: WriteHeader 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:37: ResponseWrapper 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:125: WrapResponse 0.0%
github.com/user-management-system/internal/api/middleware/response_wrapper.go:130: NoWrapper 0.0%
github.com/user-management-system/internal/api/middleware/security_headers.go:11: SecurityHeaders 100.0%
github.com/user-management-system/internal/api/middleware/security_headers.go:32: shouldAttachCSP 100.0%
github.com/user-management-system/internal/api/middleware/security_headers.go:40: isHTTPSRequest 66.7%
github.com/user-management-system/internal/api/middleware/trace_id.go:21: TraceID 0.0%
github.com/user-management-system/internal/api/middleware/trace_id.go:38: generateTraceID 0.0%
github.com/user-management-system/internal/api/middleware/trace_id.go:49: GetTraceID 0.0%
total: (statements) 16.3%