diff options
Diffstat (limited to 'internal/db/bundb')
-rw-r--r-- | internal/db/bundb/basic.go | 4 | ||||
-rw-r--r-- | internal/db/bundb/basic_test.go | 34 |
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)) } |