summaryrefslogtreecommitdiff
path: root/internal/db/bundb
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/bundb')
-rw-r--r--internal/db/bundb/basic.go4
-rw-r--r--internal/db/bundb/basic_test.go34
2 files changed, 36 insertions, 2 deletions
diff --git a/internal/db/bundb/basic.go b/internal/db/bundb/basic.go
index d4de5bb0b..1e7880379 100644
--- a/internal/db/bundb/basic.go
+++ b/internal/db/bundb/basic.go
@@ -95,7 +95,7 @@ func (b *basicDB) DeleteWhere(ctx context.Context, where []db.Where, i interface
return b.conn.ProcessError(err)
}
-func (b *basicDB) UpdateByID(ctx context.Context, id string, i interface{}) db.Error {
+func (b *basicDB) UpdateByPrimaryKey(ctx context.Context, i interface{}) db.Error {
q := b.conn.
NewUpdate().
Model(i).
@@ -105,7 +105,7 @@ func (b *basicDB) UpdateByID(ctx context.Context, id string, i interface{}) db.E
return b.conn.ProcessError(err)
}
-func (b *basicDB) UpdateOneByID(ctx context.Context, id string, key string, value interface{}, i interface{}) db.Error {
+func (b *basicDB) UpdateOneByPrimaryKey(ctx context.Context, key string, value interface{}, i interface{}) db.Error {
q := b.conn.NewUpdate().
Model(i).
Set("? = ?", bun.Safe(key), value).
diff --git a/internal/db/bundb/basic_test.go b/internal/db/bundb/basic_test.go
index e5f7e159a..acdfb6640 100644
--- a/internal/db/bundb/basic_test.go
+++ b/internal/db/bundb/basic_test.go
@@ -64,6 +64,40 @@ func (suite *BasicTestSuite) TestGetAllNotNull() {
}
}
+func (suite *BasicTestSuite) TestUpdateOneByPrimaryKeySetEmpty() {
+ testAccount := suite.testAccounts["local_account_1"]
+
+ // try removing the note from zork
+ err := suite.db.UpdateOneByPrimaryKey(context.Background(), "note", "", testAccount)
+ suite.NoError(err)
+
+ // get zork out of the database
+ dbAccount, err := suite.db.GetAccountByID(context.Background(), testAccount.ID)
+ suite.NoError(err)
+ suite.NotNil(dbAccount)
+
+ // note should be empty now
+ suite.Empty(dbAccount.Note)
+}
+
+func (suite *BasicTestSuite) TestUpdateOneByPrimaryKeySetValue() {
+ testAccount := suite.testAccounts["local_account_1"]
+
+ note := "this is my new note :)"
+
+ // try updating the note on zork
+ err := suite.db.UpdateOneByPrimaryKey(context.Background(), "note", note, testAccount)
+ suite.NoError(err)
+
+ // get zork out of the database
+ dbAccount, err := suite.db.GetAccountByID(context.Background(), testAccount.ID)
+ suite.NoError(err)
+ suite.NotNil(dbAccount)
+
+ // note should be set now
+ suite.Equal(note, dbAccount.Note)
+}
+
func TestBasicTestSuite(t *testing.T) {
suite.Run(t, new(BasicTestSuite))
}