test that translate key error messages are correct

This commit is contained in:
reesporte 2021-12-07 16:31:36 -06:00
parent f223d2d84b
commit fed20ffd3e
2 changed files with 69 additions and 84 deletions

View file

@ -1,84 +0,0 @@
package pilosa
import (
"context"
"fmt"
"reflect"
"strings"
"testing"
)
func TestTranslateIndexDbOnNilIndex(t *testing.T) {
api := API{}
api.holder = &Holder{}
r := strings.NewReader("not important tbh")
err := api.TranslateIndexDB(context.Background(), "nonExistentIndex", 0, r)
expected := fmt.Errorf("index %q not found", "nonExistentIndex")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
}
func TestTranslateIndexDbOnNilTranslateStore(t *testing.T) {
api := API{}
indexes := make(map[string]*Index)
indexes["index"] = &Index{name: "index"}
api.holder = &Holder{indexes: indexes}
r := strings.NewReader("not important tbh")
err := api.TranslateIndexDB(context.Background(), "index", 0, r)
expected := fmt.Errorf("index %q has no translate store", "index")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
}
func TestTranslateFieldDbOnNilIndex(t *testing.T) {
api := API{}
api.holder = &Holder{}
r := strings.NewReader("not important tbh")
err := api.TranslateFieldDB(context.Background(), "nonExistentIndex", "field", r)
expected := fmt.Errorf("index %q not found", "nonExistentIndex")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
}
func TestTranslateFieldDbOnNilField(t *testing.T) {
api := API{}
indexes := make(map[string]*Index)
indexes["index"] = &Index{name: "index"}
api.holder = &Holder{indexes: indexes}
r := strings.NewReader("not important tbh")
err := api.TranslateFieldDB(context.Background(), "index", "nonExistentField", r)
expected := fmt.Errorf("field %q/%q not found", "index", "nonExistentField")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
}
func TestTranslateFieldDbOnNilFieldWithFieldName_keys(t *testing.T) {
api := API{}
indexes := make(map[string]*Index)
indexes["index"] = &Index{name: "index"}
api.holder = &Holder{indexes: indexes}
r := strings.NewReader("not important tbh")
err := api.TranslateFieldDB(context.Background(), "index", "_keys", r)
if err != nil {
t.Fatalf("expected 'nil', got '%#v'", err)
}
}
func TestTranslateFieldDbOnNilTranslateStore(t *testing.T) {
api := API{}
indexes := make(map[string]*Index)
fields := make(map[string]*Field)
fields["field"] = &Field{}
indexes["index"] = &Index{name: "index", fields: fields}
api.holder = &Holder{indexes: indexes}
r := strings.NewReader("not important tbh")
err := api.TranslateFieldDB(context.Background(), "index", "field", r)
expected := fmt.Errorf("field %q/%q has no translate store", "index", "field")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
}

View file

@ -1356,3 +1356,72 @@ func createFieldForTest(index string, field string, coord *test.Command, t *test
t.Fatalf("creating field: %v", err)
}
}
func TestVariousApiTranslateCalls(t *testing.T) {
for i := 1; i < 8; i += 3 {
m := test.MustRunCluster(t, i)
defer m.Close()
node := m.GetNode(0)
api := node.API
// this should never actually get used because we're testing for errors here
r := strings.NewReader("")
// test index
idx, err := api.Holder().CreateIndex("index", pilosa.IndexOptions{})
if err != nil {
t.Fatalf("%v: could not create test index", err)
}
_, err = idx.CreateFieldIfNotExistsWithOptions("field", &pilosa.FieldOptions{Keys: false})
t.Run("translateIndexDbOnNilIndex",
func(t *testing.T) {
err := api.TranslateIndexDB(context.Background(), "nonExistentIndex", 0, r)
expected := fmt.Errorf("index %q not found", "nonExistentIndex")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
})
t.Run("translateIndexDbOnNilTranslateStore",
func(t *testing.T) {
err := api.TranslateIndexDB(context.Background(), "index", 0, r)
expected := fmt.Errorf("index %q has no translate store", "index")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
})
t.Run("translateFieldDbOnNilIndex",
func(t *testing.T) {
err := api.TranslateFieldDB(context.Background(), "nonExistentIndex", "field", r)
expected := fmt.Errorf("index %q not found", "nonExistentIndex")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
})
t.Run("translateFieldDbOnNilField",
func(t *testing.T) {
err := api.TranslateFieldDB(context.Background(), "index", "nonExistentField", r)
expected := fmt.Errorf("field %q/%q not found", "index", "nonExistentField")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
})
t.Run("translateFieldDbNilField_keys",
func(t *testing.T) {
err := api.TranslateFieldDB(context.Background(), "index", "_keys", r)
if err != nil {
t.Fatalf("expected 'nil', got '%#v'", err)
}
})
t.Run("translateFieldDbOnNilTranslateStore",
func(t *testing.T) {
err := api.TranslateFieldDB(context.Background(), "index", "field", r)
expected := fmt.Errorf("field %q/%q has no translate store", "index", "field")
if !reflect.DeepEqual(err, expected) {
t.Fatalf("expected '%#v', got '%#v'", expected, err)
}
})
}
}