mirror of
https://github.com/ForFarmTeam/ForFarm.git
synced 2025-12-19 22:14:08 +01:00
45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package utilities
|
|
|
|
import (
|
|
"github.com/golang-jwt/jwt/v5"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestJWTTokenCreationAndVerification(t *testing.T) {
|
|
testUUID := "123e4567-e89b-12d3-a456-426614174000"
|
|
|
|
token, err := CreateJwtToken(testUUID)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, token)
|
|
|
|
err = VerifyJwtToken(token)
|
|
assert.NoError(t, err)
|
|
|
|
uuid, err := ExtractUUIDFromToken(token)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, testUUID, uuid)
|
|
}
|
|
|
|
func TestExpiredJWTToken(t *testing.T) {
|
|
|
|
oldKey := defaultSecretKey
|
|
defaultSecretKey = []byte("test-secret-key-1234567890-1234567890")
|
|
defer func() { defaultSecretKey = oldKey }()
|
|
|
|
testUUID := "123e4567-e89b-12d3-a456-426614174000"
|
|
|
|
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
|
|
"uuid": testUUID,
|
|
"exp": time.Now().Add(-time.Hour).Unix(),
|
|
})
|
|
tokenString, err := token.SignedString(defaultSecretKey)
|
|
assert.NoError(t, err)
|
|
|
|
err = VerifyJwtToken(tokenString)
|
|
assert.Error(t, err)
|
|
assert.Contains(t, err.Error(), "token is expired")
|
|
}
|