package db import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/mokhax/sparkled/pkg/domain" ) func TestRepository(t *testing.T) { storage := NewRepository() t.Run("Save", func(t *testing.T) { t.Run("an invalid Sparkle", func(t *testing.T) { err := storage.Save(&domain.Sparkle{Reason: "because"}) counter := 0 storage.Each(func(item *domain.Sparkle) { counter++ }) assert.NotNil(t, err) assert.Equal(t, 0, counter) }) t.Run("a valid Sparkle", func(t *testing.T) { sparkle := &domain.Sparkle{Sparklee: "@tanuki", Reason: "because"} require.NoError(t, storage.Save(sparkle)) sparkles := []*domain.Sparkle{} storage.Each(func(item *domain.Sparkle) { sparkles = append(sparkles, item) }) assert.Equal(t, 1, len(sparkles)) assert.NotEmpty(t, sparkles[0].ID) assert.Equal(t, "@tanuki", sparkles[0].Sparklee) assert.Equal(t, "because", sparkles[0].Reason) }) }) }