feat: ✨ added more utilities functions
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package token
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/zepyrshut/esfaker"
|
||||
)
|
||||
|
||||
func Test_New(t *testing.T) {
|
||||
paseto := New()
|
||||
|
||||
require.NotNil(t, paseto.paseto)
|
||||
require.NotNil(t, paseto.privateKey)
|
||||
require.NotNil(t, paseto.publicKey)
|
||||
}
|
||||
|
||||
func Test_NewPayload(t *testing.T) {
|
||||
user := createRandomUser()
|
||||
payload := NewPayload(user)
|
||||
|
||||
require.True(t, isValidUUID(payload.UUID))
|
||||
require.Equal(t, user, payload.User)
|
||||
}
|
||||
|
||||
func Test_CreateToken(t *testing.T) {
|
||||
token := New()
|
||||
user := createRandomUser()
|
||||
signature, err := token.Create(user)
|
||||
|
||||
require.Nil(t, err)
|
||||
require.NotEmpty(t, signature)
|
||||
}
|
||||
|
||||
func Test_VerifyToken(t *testing.T) {
|
||||
token := New()
|
||||
user := createRandomUser()
|
||||
signature, _ := token.Create(user)
|
||||
payload, err := token.Verify(signature)
|
||||
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, user, payload.User)
|
||||
}
|
||||
|
||||
func Test_VerifyToken_InvalidToken(t *testing.T) {
|
||||
token := New()
|
||||
_, err := token.Verify("invalid-token")
|
||||
|
||||
require.NotNil(t, err)
|
||||
}
|
||||
|
||||
func isValidUUID(u uuid.UUID) bool {
|
||||
_, err := uuid.Parse(u.String())
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func createRandomUser() UserPayload {
|
||||
return UserPayload{
|
||||
Username: esfaker.Chars(5, 10),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user