return an error when deleting a non-existent index or field

This commit is contained in:
Travis Turner 2018-06-29 14:57:24 -05:00
parent 7dd1f50a75
commit 8a5f5dd737
No known key found for this signature in database
GPG key ID: 7F08008DFD9314C9
3 changed files with 8 additions and 7 deletions

View file

@ -371,10 +371,10 @@ func (h *Holder) DeleteIndex(name string) error {
h.mu.Lock()
defer h.mu.Unlock()
// Ignore if index doesn't exist.
// Confirm index exists.
index := h.index(name)
if index == nil {
return nil
return NotFoundError{ErrIndexNotFound}
}
// Close index.

View file

@ -346,10 +346,10 @@ func (i *Index) DeleteField(name string) error {
i.mu.Lock()
defer i.mu.Unlock()
// Ignore if field doesn't exist.
// Confirm field exists.
f := i.field(name)
if f == nil {
return nil
return NotFoundError{ErrFieldNotFound}
}
// Close field.

View file

@ -194,13 +194,14 @@ func TestIndex_DeleteField(t *testing.T) {
t.Fatal("expected nil field")
}
// Delete again to make sure it doesn't error.
if err := index.DeleteField("f"); err != nil {
// Delete again to make sure it errors.
err := index.DeleteField("f")
if err == nil || err.Error() != pilosa.ErrFieldNotFound.Error() {
t.Fatal(err)
}
}
// Ensure index can delete a field.
// Ensure index can validate its name.
func TestIndex_InvalidName(t *testing.T) {
path, err := ioutil.TempDir("", "pilosa-index-")
if err != nil {