test: 验证 Sense 30天 JWT 到期时间 (#104)
This commit is contained in:
@@ -3,6 +3,8 @@ package middleware
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/config"
|
||||
)
|
||||
|
||||
func TestResolveJWTTimeoutDefaultsToThirtyDays(t *testing.T) {
|
||||
@@ -24,3 +26,32 @@ func TestResolveJWTTimeoutKeepsUpstreamDevelopmentBehavior(t *testing.T) {
|
||||
t.Fatalf("development timeout=%s", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthInitSignsTokenExpiringAfterThirtyDays(t *testing.T) {
|
||||
oldMode := config.ApplicationConfig.Mode
|
||||
oldTimeout := config.JwtConfig.Timeout
|
||||
oldSecret := config.JwtConfig.Secret
|
||||
t.Cleanup(func() {
|
||||
config.ApplicationConfig.Mode = oldMode
|
||||
config.JwtConfig.Timeout = oldTimeout
|
||||
config.JwtConfig.Secret = oldSecret
|
||||
})
|
||||
|
||||
config.ApplicationConfig.Mode = "prod"
|
||||
config.JwtConfig.Timeout = 0
|
||||
config.JwtConfig.Secret = "task-104-test-secret-not-for-production"
|
||||
|
||||
auth, err := AuthInit()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
now := time.Date(2026, 8, 17, 10, 0, 0, 0, time.UTC)
|
||||
auth.TimeFunc = func() time.Time { return now }
|
||||
_, expiresAt, err := auth.TokenGenerator(map[string]interface{}{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := expiresAt.Sub(now); got != 30*24*time.Hour {
|
||||
t.Fatalf("signed token validity=%s, want 720h", got)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user