### Unit Test Generics with pgxmock Source: https://github.com/yakwilik/easydb/blob/master/README.md Provides examples of using generic helper functions with `pgxmock` for unit testing database interactions. These functions simplify mocking `SELECT`, `INSERT`, `UPDATE`, and `DELETE` operations with parameterized queries. ```go // Get[T] result, err := easydb.Get[user](context.Background(), mock, "SELECT id, name FROM users WHERE id = $1", 1) // Select[T] list, err := easydb.Select[user](context.Background(), mock, "SELECT id, name FROM users") // Exec cmd, err := easydb.Exec(context.Background(), mock, "UPDATE users SET name = $1 WHERE id = $2", "Alice", 1) _ = cmd.Update() // NamedGet u, err := easydb.NamedGet[user](context.Background(), mock, "SELECT id, name FROM users WHERE id = :id", map[string]any{"id": 1}) // NamedSelect rows, err := easydb.NamedSelect[user](context.Background(), mock, "SELECT id, name FROM users WHERE name != :name", map[string]any{"name": "Eve"}) // NamedExec cmd, err = easydb.NamedExec(context.Background(), mock, "DELETE FROM users WHERE id = :id", map[string]any{"id": 42}) _ = cmd.Delete() ``` -------------------------------- ### Integrate Transactions with easydb.WithTx Source: https://github.com/yakwilik/easydb/blob/master/README.md Demonstrates how to use the `WithTx` function from easydb to manage database transactions. It shows how to perform read and write operations within a transaction and handle potential errors. ```go var countBefore, countAfter int err := db.WithTx(context.Background(), func(tx easydb.Querier) error { if err := tx.Get(context.Background(), &countBefore, `SELECT COUNT(*) FROM users`); err != nil { return err } if _, err := tx.Exec(context.Background(), `INSERT INTO users (name, email) VALUES ($1, $2)`, "TestUser", "test@example.com"); err != nil { return err } return tx.Get(context.Background(), &countAfter, `SELECT COUNT(*) FROM users`) }) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.