refactor to improve database operability

This commit is contained in:
2026-01-11 22:21:44 +11:00
parent 1b25e2f0a5
commit ae4094d426
13 changed files with 136 additions and 57 deletions

View File

@@ -18,7 +18,7 @@ func TestCreateGenerator_Success_NoDB(t *testing.T) {
DB: nil,
DBType: DatabaseType{Type: DatabasePostgreSQL, Version: "15"},
TableConfig: DefaultTableConfig(),
})
}, nil)
require.NoError(t, err)
require.NotNil(t, gen)
@@ -33,6 +33,10 @@ func TestCreateGenerator_Success_WithDB(t *testing.T) {
config.AutoCreate = false
config.EnableAutoCleanup = false
txGetter := func(ctx context.Context) (DBTransaction, error) {
return db.Begin()
}
gen, err := CreateGenerator(GeneratorConfig{
AccessExpireAfter: 15,
RefreshExpireAfter: 60,
@@ -42,7 +46,7 @@ func TestCreateGenerator_Success_WithDB(t *testing.T) {
DB: db,
DBType: DatabaseType{Type: DatabasePostgreSQL, Version: "15"},
TableConfig: config,
})
}, txGetter)
require.NoError(t, err)
require.NotNil(t, gen)
@@ -67,6 +71,10 @@ func TestCreateGenerator_WithDB_AutoCreate(t *testing.T) {
mock.ExpectExec("CREATE OR REPLACE FUNCTION cleanup_jwtblacklist").
WillReturnResult(sqlmock.NewResult(0, 0))
txGetter := func(ctx context.Context) (DBTransaction, error) {
return db.Begin()
}
gen, err := CreateGenerator(GeneratorConfig{
AccessExpireAfter: 15,
RefreshExpireAfter: 60,
@@ -76,7 +84,7 @@ func TestCreateGenerator_WithDB_AutoCreate(t *testing.T) {
DB: db,
DBType: DatabaseType{Type: DatabasePostgreSQL, Version: "15"},
TableConfig: DefaultTableConfig(),
})
}, txGetter)
require.NoError(t, err)
require.NotNil(t, gen)
@@ -142,7 +150,7 @@ func TestCreateGenerator_InvalidInputs(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_, err := CreateGenerator(tt.config)
_, err := CreateGenerator(tt.config, nil)
require.Error(t, err)
})
}
@@ -158,7 +166,7 @@ func TestCleanup_NoDB(t *testing.T) {
DB: nil,
DBType: DatabaseType{Type: DatabasePostgreSQL, Version: "15"},
TableConfig: DefaultTableConfig(),
})
}, nil)
require.NoError(t, err)
err = gen.Cleanup(context.Background())
@@ -175,6 +183,10 @@ func TestCleanup_Success(t *testing.T) {
config.AutoCreate = false
config.EnableAutoCleanup = false
txGetter := func(ctx context.Context) (DBTransaction, error) {
return db.Begin()
}
gen, err := CreateGenerator(GeneratorConfig{
AccessExpireAfter: 15,
RefreshExpireAfter: 60,
@@ -184,10 +196,11 @@ func TestCleanup_Success(t *testing.T) {
DB: db,
DBType: DatabaseType{Type: DatabasePostgreSQL, Version: "15"},
TableConfig: config,
})
}, txGetter)
require.NoError(t, err)
// Mock DELETE query
// Mock transaction begin and DELETE query
mock.ExpectBegin()
mock.ExpectExec("DELETE FROM jwtblacklist WHERE exp").
WillReturnResult(sqlmock.NewResult(0, 5))