From 187ed5987d2e52cabcef99d1b89611b460b99a2f Mon Sep 17 00:00:00 2001 From: Sebastiaan de Schaetzen Date: Sun, 16 Mar 2025 11:04:21 +0100 Subject: [PATCH] Add update test --- query_test.go | 15 +++++++++++++++ transaction.go | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/query_test.go b/query_test.go index 171f11a..355125e 100644 --- a/query_test.go +++ b/query_test.go @@ -66,3 +66,18 @@ func TestQueryWithRange(t *testing.T) { } require.NoError(t, err) } + +func TestUpdateQuery(t *testing.T) { + db := openTestDb(t) + func() { + tx := db.MustBegin() + defer tx.MustRollback() + tx.Query("insert into mytable(key, value) values ('lorem', 'bar')").MustExec() + tx.Query("update mytable set value = 'ipsum' where key = 'lorem'").MustExec() + tx.MustCommit() + }() + + var value string + db.Query("select value from mytable where value = 'ipsum'").MustScanSingle(&value) + require.Equal(t, "ipsum", value) +} diff --git a/transaction.go b/transaction.go index 7b409c0..e201ee6 100644 --- a/transaction.go +++ b/transaction.go @@ -15,11 +15,26 @@ func (d *Db) Begin() (*Tx, error) { return &Tx{db: d}, nil } +func (d *Db) MustBegin() *Tx { + tx, err := d.Begin() + if err != nil { + panic(err) + } + return tx +} + func (tx *Tx) Commit() error { defer tx.unlock() return tx.Query("COMMIT").Exec() } +func (tx *Tx) MustCommit() { + err := tx.Commit() + if err != nil { + panic(err) + } +} + func (tx *Tx) Rollback() error { if tx.db == nil { // The transaction was already commited