Files
dbx/testhelpers_test.go
end 8d697eda5b feat: add delete, context, and tx helpers
Add Delete/DeleteAffected, context-aware CRUD helpers, WithTx, ContainsCol,
and queryReturning deduplication for returning statements.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:49:57 -07:00

73 lines
1.6 KiB
Go

package dbx
import (
"context"
"database/sql"
"github.com/go-jet/jet/v2/qrm"
)
type mockStatement struct {
queryContextFn func(ctx context.Context, dest any) error
execContextFn func(ctx context.Context) (sql.Result, error)
}
func (m mockStatement) Query(db qrm.Queryable, dest any) error {
return m.QueryContext(context.Background(), db, dest)
}
func (m mockStatement) QueryContext(ctx context.Context, db qrm.Queryable, dest any) error {
if m.queryContextFn != nil {
return m.queryContextFn(ctx, dest)
}
return nil
}
func (m mockStatement) Exec(db qrm.Executable) (sql.Result, error) {
return m.ExecContext(context.Background(), db)
}
func (m mockStatement) ExecContext(ctx context.Context, db qrm.Executable) (sql.Result, error) {
if m.execContextFn != nil {
return m.execContextFn(ctx)
}
return nil, nil
}
type mockQueryable struct{}
func (mockQueryable) Query(string, ...any) (*sql.Rows, error) { return nil, nil }
func (mockQueryable) QueryContext(context.Context, string, ...any) (*sql.Rows, error) {
return nil, nil
}
type mockExecutable struct{}
func (mockExecutable) Exec(string, ...any) (sql.Result, error) { return nil, nil }
func (mockExecutable) ExecContext(context.Context, string, ...any) (sql.Result, error) {
return nil, nil
}
type mockResult struct {
lastInsertID int64
rowsAffected int64
lastInsertErr error
rowsAffectedErr error
}
func (r mockResult) LastInsertId() (int64, error) {
return r.lastInsertID, r.lastInsertErr
}
func (r mockResult) RowsAffected() (int64, error) {
return r.rowsAffected, r.rowsAffectedErr
}
type row struct {
ID int
}
var _ Statement = mockStatement{}