tests: fix tests

This commit is contained in:
Stavros
2025-12-31 17:25:07 +02:00
parent 7c726cbcef
commit 8652659e83
5 changed files with 26 additions and 20 deletions

View File

@@ -108,7 +108,7 @@ func (app *BootstrapApp) Setup() error {
log.Trace().Str("redirectCookieName", app.context.redirectCookieName).Msg("Redirect cookie name") log.Trace().Str("redirectCookieName", app.context.redirectCookieName).Msg("Redirect cookie name")
// Database // Database
db, err := app.setupDatabase(app.config.DatabasePath) db, err := app.SetupDatabase(app.config.DatabasePath)
if err != nil { if err != nil {
return fmt.Errorf("failed to setup database: %w", err) return fmt.Errorf("failed to setup database: %w", err)

View File

@@ -14,7 +14,7 @@ import (
_ "modernc.org/sqlite" _ "modernc.org/sqlite"
) )
func (app *BootstrapApp) setupDatabase(databasePath string) (*sql.DB, error) { func (app *BootstrapApp) SetupDatabase(databasePath string) (*sql.DB, error) {
dir := filepath.Dir(databasePath) dir := filepath.Dir(databasePath)
if err := os.MkdirAll(dir, 0750); err != nil { if err := os.MkdirAll(dir, 0750); err != nil {

View File

@@ -4,8 +4,10 @@ import (
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"github.com/steveiliop56/tinyauth/internal/bootstrap"
"github.com/steveiliop56/tinyauth/internal/config" "github.com/steveiliop56/tinyauth/internal/config"
"github.com/steveiliop56/tinyauth/internal/controller" "github.com/steveiliop56/tinyauth/internal/controller"
"github.com/steveiliop56/tinyauth/internal/repository"
"github.com/steveiliop56/tinyauth/internal/service" "github.com/steveiliop56/tinyauth/internal/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -26,14 +28,16 @@ func setupProxyController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.En
group := router.Group("/api") group := router.Group("/api")
recorder := httptest.NewRecorder() recorder := httptest.NewRecorder()
// Mock app
app := bootstrap.NewBootstrapApp(config.Config{})
// Database // Database
databaseService := service.NewDatabaseService(service.DatabaseServiceConfig{ db, err := app.SetupDatabase(":memory:")
DatabasePath: "/tmp/tinyauth_test.db",
})
assert.NilError(t, databaseService.Init()) assert.NilError(t, err)
database := databaseService.GetDatabase() // Queries
queries := repository.New(db)
// Docker // Docker
dockerService := service.NewDockerService() dockerService := service.NewDockerService()
@@ -60,7 +64,7 @@ func setupProxyController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.En
LoginTimeout: 300, LoginTimeout: 300,
LoginMaxRetries: 3, LoginMaxRetries: 3,
SessionCookieName: "tinyauth-session", SessionCookieName: "tinyauth-session",
}, dockerService, nil, database) }, dockerService, nil, queries)
// Controller // Controller
ctrl := controller.NewProxyController(controller.ProxyControllerConfig{ ctrl := controller.NewProxyController(controller.ProxyControllerConfig{

View File

@@ -8,8 +8,10 @@ import (
"testing" "testing"
"time" "time"
"github.com/steveiliop56/tinyauth/internal/bootstrap"
"github.com/steveiliop56/tinyauth/internal/config" "github.com/steveiliop56/tinyauth/internal/config"
"github.com/steveiliop56/tinyauth/internal/controller" "github.com/steveiliop56/tinyauth/internal/controller"
"github.com/steveiliop56/tinyauth/internal/repository"
"github.com/steveiliop56/tinyauth/internal/service" "github.com/steveiliop56/tinyauth/internal/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -34,14 +36,16 @@ func setupUserController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.Eng
group := router.Group("/api") group := router.Group("/api")
recorder := httptest.NewRecorder() recorder := httptest.NewRecorder()
// Mock app
app := bootstrap.NewBootstrapApp(config.Config{})
// Database // Database
databaseService := service.NewDatabaseService(service.DatabaseServiceConfig{ db, err := app.SetupDatabase(":memory:")
DatabasePath: "/tmp/tinyauth_test.db",
})
assert.NilError(t, databaseService.Init()) assert.NilError(t, err)
database := databaseService.GetDatabase() // Queries
queries := repository.New(db)
// Auth service // Auth service
authService := service.NewAuthService(service.AuthServiceConfig{ authService := service.NewAuthService(service.AuthServiceConfig{
@@ -63,7 +67,7 @@ func setupUserController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.Eng
LoginTimeout: 300, LoginTimeout: 300,
LoginMaxRetries: 3, LoginMaxRetries: 3,
SessionCookieName: "tinyauth-session", SessionCookieName: "tinyauth-session",
}, nil, nil, database) }, nil, nil, queries)
// Controller // Controller
ctrl := controller.NewUserController(controller.UserControllerConfig{ ctrl := controller.NewUserController(controller.UserControllerConfig{

View File

@@ -1,7 +1,6 @@
package service package service
import ( import (
"context"
"database/sql" "database/sql"
"errors" "errors"
"fmt" "fmt"
@@ -44,7 +43,6 @@ type AuthService struct {
loginMutex sync.RWMutex loginMutex sync.RWMutex
ldap *LdapService ldap *LdapService
queries *repository.Queries queries *repository.Queries
ctx context.Context
} }
func NewAuthService(config AuthServiceConfig, docker *DockerService, ldap *LdapService, queries *repository.Queries) *AuthService { func NewAuthService(config AuthServiceConfig, docker *DockerService, ldap *LdapService, queries *repository.Queries) *AuthService {
@@ -236,7 +234,7 @@ func (auth *AuthService) RefreshSessionCookie(c *gin.Context) error {
return err return err
} }
session, err := auth.queries.GetSession(auth.ctx, cookie) session, err := auth.queries.GetSession(c, cookie)
if err != nil { if err != nil {
return err return err
@@ -279,7 +277,7 @@ func (auth *AuthService) DeleteSessionCookie(c *gin.Context) error {
return err return err
} }
err = auth.queries.DeleteSession(auth.ctx, cookie) err = auth.queries.DeleteSession(c, cookie)
if err != nil { if err != nil {
return err return err
@@ -297,7 +295,7 @@ func (auth *AuthService) GetSessionCookie(c *gin.Context) (config.SessionCookie,
return config.SessionCookie{}, err return config.SessionCookie{}, err
} }
session, err := auth.queries.GetSession(auth.ctx, cookie) session, err := auth.queries.GetSession(c, cookie)
if err != nil { if err != nil {
return config.SessionCookie{}, err return config.SessionCookie{}, err
@@ -310,7 +308,7 @@ func (auth *AuthService) GetSessionCookie(c *gin.Context) (config.SessionCookie,
currentTime := time.Now().Unix() currentTime := time.Now().Unix()
if currentTime > session.Expiry { if currentTime > session.Expiry {
err = auth.queries.DeleteSession(auth.ctx, cookie) err = auth.queries.DeleteSession(c, cookie)
if err != nil { if err != nil {
log.Error().Err(err).Msg("Failed to delete expired session") log.Error().Err(err).Msg("Failed to delete expired session")
} }