Files
golib/jwt/generator_test.go
2026-01-01 20:33:16 +11:00

91 lines
1.4 KiB
Go

package jwt
import (
"testing"
"github.com/DATA-DOG/go-sqlmock"
"github.com/stretchr/testify/require"
)
func TestCreateGenerator_Success_NoDB(t *testing.T) {
gen, err := CreateGenerator(
15,
60,
5,
"example.com",
"secret",
nil,
)
require.NoError(t, err)
require.NotNil(t, gen)
}
func TestCreateGenerator_Success_WithDB(t *testing.T) {
db, mock, err := sqlmock.New()
require.NoError(t, err)
defer db.Close()
gen, err := CreateGenerator(
15,
60,
5,
"example.com",
"secret",
db,
)
require.NoError(t, err)
require.NotNil(t, gen)
require.NoError(t, mock.ExpectationsWereMet())
}
func TestCreateGenerator_InvalidInputs(t *testing.T) {
tests := []struct {
name string
fn func() error
}{
{
"access expiry <= 0",
func() error {
_, err := CreateGenerator(0, 1, 1, "h", "s", nil)
return err
},
},
{
"refresh expiry <= 0",
func() error {
_, err := CreateGenerator(1, 0, 1, "h", "s", nil)
return err
},
},
{
"fresh expiry <= 0",
func() error {
_, err := CreateGenerator(1, 1, 0, "h", "s", nil)
return err
},
},
{
"empty trustedHost",
func() error {
_, err := CreateGenerator(1, 1, 1, "", "s", nil)
return err
},
},
{
"empty secretKey",
func() error {
_, err := CreateGenerator(1, 1, 1, "h", "", nil)
return err
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
require.Error(t, tt.fn())
})
}
}