kvstore: ensure we return notFound on delete (#107288)

* kvstore: ensure we return notFound on delete

* fix tests
This commit is contained in:
Georges Chaudy
2025-06-27 12:00:03 +02:00
committed by GitHub
parent f1a22a8ea9
commit b2aaa9b3ce
3 changed files with 14 additions and 3 deletions
@@ -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)
})
}
+10 -1
View File
@@ -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
}
+2 -1
View File
@@ -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)
})
}