Files
2024-12-06 16:10:35 +03:00

106 lines
2.2 KiB
Go

package handlers
import (
"testing"
"time"
c "desq.com.ru/testjwtauth/config"
"desq.com.ru/testjwtauth/models"
"github.com/golang-jwt/jwt/v5"
"github.com/google/uuid"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func TestCreateToken(t *testing.T) {
DB, err := gorm.Open(postgres.Open(c.DSN), &gorm.Config{})
if err != nil {
t.Fatalf("Failed to connect to database: %v", err)
}
DB.AutoMigrate(&models.RefreshToken{})
userID := uuid.New()
IP := "127.0.0.1"
expires := time.Now().Add(time.Hour * 24).Unix()
type args struct {
DB *gorm.DB
userID uuid.UUID
IP string
expires int64
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "CreateToken",
args: args{
DB: DB,
userID: userID,
IP: IP,
expires: expires,
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_, _, err := CreateToken(tt.args.DB, tt.args.userID, tt.args.IP, tt.args.expires)
if (err != nil) != tt.wantErr {
t.Errorf("CreateToken() error = %v, wantErr %v", err, tt.wantErr)
return
}
})
}
}
func TestRefreshToken(t *testing.T) {
DB, err := gorm.Open(postgres.Open(c.DSN), &gorm.Config{})
if err != nil {
t.Fatalf("Failed to connect to database: %v", err)
}
DB.AutoMigrate(&models.RefreshToken{})
userID := uuid.New()
IP := "127.0.0.1"
expires := time.Now().Add(time.Hour * 24)
_, RT, err := CreateToken(DB, userID, IP, expires.Unix())
if err != nil {
t.Fatalf("Failed to generate token pair: %v", err)
}
claims := jwt.MapClaims{
"userId": userID,
"ip": IP,
"sub": RT,
"exp": expires,
}
type args struct {
DB *gorm.DB
userID uuid.UUID
claims jwt.MapClaims
RT string
IP string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "RefreshToken",
args: args{
DB: DB,
userID: userID,
claims: claims,
RT: RT,
IP: IP,
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := RefreshToken(tt.args.DB, tt.args.userID, tt.args.claims, tt.args.RT, tt.args.IP); (err != nil) != tt.wantErr {
t.Errorf("RefreshToken() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}