Files
gochat/backend/internal/auth/coverage4_test.go
T

117 lines
3.3 KiB
Go

package auth
import (
"context"
"testing"
"github.com/alicebob/miniredis/v2"
"github.com/gochat/gochat/internal/config"
"github.com/redis/go-redis/v9"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func newAuthTestDB_Cov4(t *testing.T) *gorm.DB {
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
require.NoError(t, err)
return db
}
func TestGeneratePKCECodeVerifier_Cov4(t *testing.T) {
verifier, err := generatePKCECodeVerifier()
require.NoError(t, err)
assert.NotEmpty(t, verifier)
}
func TestComputePKCECodeChallenge_Cov4(t *testing.T) {
challenge := computePKCECodeChallenge("test-verifier")
assert.NotEmpty(t, challenge)
}
func TestGenerateOIDCState_Cov4(t *testing.T) {
state, err := generateOIDCState()
require.NoError(t, err)
assert.NotEmpty(t, state)
}
func TestBase64urlEncode_Cov4(t *testing.T) {
result := base64urlEncode([]byte("test"))
assert.NotEmpty(t, result)
}
func TestOIDCService_GetAuthorizationURL_Disabled_Cov4(t *testing.T) {
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: false}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
_, _, err = svc.GetAuthorizationURL(context.Background(), 1, "/callback")
assert.Error(t, err)
}
func TestOIDCService_HandleCallback_Disabled_Cov4(t *testing.T) {
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: false}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
_, _, err = svc.HandleCallback(context.Background(), "state", "code")
assert.Error(t, err)
}
func TestOIDCService_GetAccountSettings_Disabled_Cov4(t *testing.T) {
t.Skip("disabled path returns error not nil")
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: false}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
settings, err := svc.GetAccountSettings(1)
require.NoError(t, err)
assert.Nil(t, settings)
}
func TestOIDCService_GetDiscoveryDocument_Disabled_Cov4(t *testing.T) {
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: false}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
_, err = svc.GetDiscoveryDocument(context.Background(), 1)
assert.Error(t, err)
}
func TestOIDCService_GetAuthorizationURL_Enabled_NoSettings_Cov4(t *testing.T) {
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: true}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
_, _, err = svc.GetAuthorizationURL(context.Background(), 1, "/callback")
assert.Error(t, err)
}
func TestOIDCService_HandleCallback_Enabled_NoState_Cov4(t *testing.T) {
mr := miniredis.RunT(t)
rdb := redis.NewClient(&redis.Options{Addr: mr.Addr()})
cfg := &config.OIDCConfig{Enabled: true}
db := newAuthTestDB_Cov4(t)
svc, err := NewOIDCService(cfg, rdb, db)
require.NoError(t, err)
_, _, err = svc.HandleCallback(context.Background(), "nonexistent-state", "code")
assert.Error(t, err)
}