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))  } | 
