Updated all code to use SafeConn and SafeTX

This commit is contained in:
2025-02-17 21:39:12 +11:00
parent 6faf168a6d
commit a8d112fdd5
17 changed files with 265 additions and 218 deletions

View File

@@ -107,7 +107,6 @@ func Authentication(
}
handlers.WithTransaction(w, r, logger, conn,
func(ctx context.Context, tx *db.SafeTX, w http.ResponseWriter, r *http.Request) {
tx, err := conn.Begin(ctx)
user, err := getAuthenticatedUser(config, ctx, tx, w, r)
if err != nil {
tx.Rollback()

View File

@@ -8,6 +8,7 @@ import (
"testing"
"projectreshoot/contexts"
"projectreshoot/db"
"projectreshoot/tests"
"github.com/stretchr/testify/assert"
@@ -16,13 +17,14 @@ import (
func TestAuthenticationMiddleware(t *testing.T) {
// Basic setup
conn, err := tests.SetupTestDB()
require.NoError(t, err)
sconn := db.MakeSafe(conn)
defer sconn.Close()
cfg, err := tests.TestConfig()
require.NoError(t, err)
logger := tests.NilLogger()
conn, err := tests.SetupTestDB(t.Context())
require.NoError(t, err)
require.NotNil(t, conn)
defer tests.DeleteTestDB()
logger := tests.DebugLogger(t)
// Handler to check outcome of Authentication middleware
testHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -38,7 +40,7 @@ func TestAuthenticationMiddleware(t *testing.T) {
})
// Add the middleware and create the server
authHandler := Authentication(logger, cfg, conn, testHandler)
authHandler := Authentication(logger, cfg, sconn, testHandler)
require.NoError(t, err)
server := httptest.NewServer(authHandler)
defer server.Close()

View File

@@ -5,6 +5,7 @@ import (
"net/http/httptest"
"testing"
"projectreshoot/db"
"projectreshoot/tests"
"github.com/stretchr/testify/assert"
@@ -13,13 +14,14 @@ import (
func TestPageLoginRequired(t *testing.T) {
// Basic setup
conn, err := tests.SetupTestDB()
require.NoError(t, err)
sconn := db.MakeSafe(conn)
defer sconn.Close()
cfg, err := tests.TestConfig()
require.NoError(t, err)
logger := tests.NilLogger()
conn, err := tests.SetupTestDB(t.Context())
require.NoError(t, err)
require.NotNil(t, conn)
defer tests.DeleteTestDB()
logger := tests.DebugLogger(t)
// Handler to check outcome of Authentication middleware
testHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -28,7 +30,7 @@ func TestPageLoginRequired(t *testing.T) {
// Add the middleware and create the server
loginRequiredHandler := RequiresLogin(testHandler)
authHandler := Authentication(logger, cfg, conn, loginRequiredHandler)
authHandler := Authentication(logger, cfg, sconn, loginRequiredHandler)
server := httptest.NewServer(authHandler)
defer server.Close()

View File

@@ -5,21 +5,23 @@ import (
"net/http/httptest"
"testing"
"projectreshoot/db"
"projectreshoot/tests"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestActionReauthRequired(t *testing.T) {
func TestReauthRequired(t *testing.T) {
// Basic setup
conn, err := tests.SetupTestDB()
require.NoError(t, err)
sconn := db.MakeSafe(conn)
defer sconn.Close()
cfg, err := tests.TestConfig()
require.NoError(t, err)
logger := tests.NilLogger()
conn, err := tests.SetupTestDB(t.Context())
require.NoError(t, err)
require.NotNil(t, conn)
defer tests.DeleteTestDB()
logger := tests.DebugLogger(t)
// Handler to check outcome of Authentication middleware
testHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -29,7 +31,7 @@ func TestActionReauthRequired(t *testing.T) {
// Add the middleware and create the server
reauthRequiredHandler := RequiresFresh(testHandler)
loginRequiredHandler := RequiresLogin(reauthRequiredHandler)
authHandler := Authentication(logger, cfg, conn, loginRequiredHandler)
authHandler := Authentication(logger, cfg, sconn, loginRequiredHandler)
server := httptest.NewServer(authHandler)
defer server.Close()