kvstore: ensure we return notFound on delete (#107288)
* kvstore: ensure we return notFound on delete * fix tests
This commit is contained in:
@@ -605,7 +605,8 @@ func TestDataStore_Delete(t *testing.T) {
|
||||
}
|
||||
|
||||
err := ds.Delete(ctx, nonExistentKey)
|
||||
require.NoError(t, err) // BadgerDB doesn't return error for non-existent keys
|
||||
require.Error(t, err)
|
||||
require.Equal(t, ErrNotFound, err)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,16 @@ func (k *badgerKV) Delete(ctx context.Context, section string, key string) error
|
||||
|
||||
key = section + "/" + key
|
||||
|
||||
err := txn.Delete([]byte(key))
|
||||
// Check if key exists before deleting
|
||||
_, err := txn.Get([]byte(key))
|
||||
if err != nil {
|
||||
if errors.Is(err, badger.ErrKeyNotFound) {
|
||||
return ErrNotFound
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
err = txn.Delete([]byte(key))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -127,7 +127,8 @@ func TestBadgerKV_Delete(t *testing.T) {
|
||||
|
||||
t.Run("Delete non-existent key", func(t *testing.T) {
|
||||
err := kv.Delete(ctx, "section", "nonexistent")
|
||||
require.NoError(t, err) // Badger doesn't return error for non-existent keys
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, ErrNotFound, err)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user