Skip to content

Commit 33d30d5

Browse files
Merge pull request #11 from odpf/return-empty-list-on-empty-types
fix fetching empty types returns null
2 parents 27c3ab8 + e0de59e commit 33d30d5

File tree

2 files changed

+33
-17
lines changed

2 files changed

+33
-17
lines changed

store/type_repository.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ func (repo *TypeRepository) GetAll(ctx context.Context) ([]models.Type, error) {
204204
return nil, err
205205
}
206206

207-
var types []models.Type
207+
types := []models.Type{}
208208
for _, rawType := range rawEntities {
209209
var serialised = new(bytes.Buffer)
210210
if err := json.NewEncoder(serialised).Encode(rawType); err != nil {

store/type_repository_test.go

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -322,23 +322,39 @@ func TestTypeRepository(t *testing.T) {
322322
}
323323
})
324324
t.Run("GetAll", func(t *testing.T) {
325-
repo := store.NewTypeRepository(esTestServer.NewClient())
326-
err := repo.CreateOrReplace(ctx, daggerType)
327-
if err != nil {
328-
t.Errorf("error writing to elasticsearch: %v", err)
329-
return
330-
}
325+
t.Run("should return empty list if no type is available", func(t *testing.T) {
326+
esClient := esTestServer.NewClient()
327+
repo := store.NewTypeRepository(esClient)
328+
_, err := esClient.Indices.Create("meta")
329+
if err != nil {
330+
t.Errorf("error creating meta index: %v", err)
331+
return
332+
}
331333

332-
types, err := repo.GetAll(ctx)
333-
if err != nil {
334-
t.Errorf("error getting type from repository: %v", err)
335-
return
336-
}
337-
var expect = []models.Type{daggerType}
338-
if reflect.DeepEqual(expect, types) == false {
339-
t.Errorf("expected repository to return %#v, returned %#v instead", expect, types)
340-
return
341-
}
334+
types, err := repo.GetAll(ctx)
335+
if err != nil {
336+
t.Errorf("error getting type from repository: %v", err)
337+
return
338+
}
339+
340+
assert.Equal(t, []models.Type{}, types)
341+
})
342+
t.Run("should return types from elasticsearch", func(t *testing.T) {
343+
repo := store.NewTypeRepository(esTestServer.NewClient())
344+
err := repo.CreateOrReplace(ctx, daggerType)
345+
if err != nil {
346+
t.Errorf("error writing to elasticsearch: %v", err)
347+
return
348+
}
349+
350+
types, err := repo.GetAll(ctx)
351+
if err != nil {
352+
t.Errorf("error getting type from repository: %v", err)
353+
return
354+
}
355+
var expect = []models.Type{daggerType}
356+
assert.Equal(t, expect, types)
357+
})
342358
})
343359
t.Run("Delete", func(t *testing.T) {
344360
typeName := "delete-type"

0 commit comments

Comments
 (0)