Files
acc-server-manager/tests/auth_helper.go
Fran Jurmanović 5e7c96697a code cleanup
2025-09-18 13:33:51 +02:00

84 lines
1.8 KiB
Go

package tests
import (
"acc-server-manager/local/model"
"acc-server-manager/local/utl/jwt"
"fmt"
"os"
"time"
"github.com/google/uuid"
)
func GenerateTestToken() (string, error) {
user := &model.User{
ID: uuid.New(),
Username: "test_user",
RoleID: uuid.New(),
}
testSecret := os.Getenv("JWT_SECRET")
if testSecret == "" {
testSecret = "test-secret-that-is-at-least-32-bytes-long-for-security"
}
jwtHandler := jwt.NewJWTHandler(testSecret)
token, err := jwtHandler.GenerateToken(user.ID.String())
if err != nil {
return "", fmt.Errorf("failed to generate test token: %w", err)
}
return token, nil
}
func MustGenerateTestToken() string {
token, err := GenerateTestToken()
if err != nil {
panic(fmt.Sprintf("Failed to generate test token: %v", err))
}
return token
}
func GenerateTestTokenWithExpiry(expiryTime time.Time) (string, error) {
testSecret := os.Getenv("JWT_SECRET")
if testSecret == "" {
testSecret = "test-secret-that-is-at-least-32-bytes-long-for-security"
}
jwtHandler := jwt.NewJWTHandler(testSecret)
user := &model.User{
ID: uuid.New(),
Username: "test_user",
RoleID: uuid.New(),
}
token, err := jwtHandler.GenerateTokenWithExpiry(user, expiryTime)
if err != nil {
return "", fmt.Errorf("failed to generate test token with expiry: %w", err)
}
return token, nil
}
func AddAuthHeader(headers map[string]string) (map[string]string, error) {
token, err := GenerateTestToken()
if err != nil {
return nil, err
}
if headers == nil {
headers = make(map[string]string)
}
headers["Authorization"] = "Bearer " + token
return headers, nil
}
func MustAddAuthHeader(headers map[string]string) map[string]string {
result, err := AddAuthHeader(headers)
if err != nil {
panic(fmt.Sprintf("Failed to add auth header: %v", err))
}
return result
}