package repo import ( "context" "testing" "github.com/hay-kot/content/backend/internal/types" "github.com/stretchr/testify/assert" ) func locationFactory() types.LocationCreate { return types.LocationCreate{ Name: fk.RandomString(10), Description: fk.RandomString(100), } } func TestLocationRepository_Get(t *testing.T) { loc, err := tRepos.Locations.Create(context.Background(), tGroup.ID, locationFactory()) assert.NoError(t, err) // Get by ID foundLoc, err := tRepos.Locations.Get(context.Background(), loc.ID) assert.NoError(t, err) assert.Equal(t, loc.ID, foundLoc.ID) err = tRepos.Locations.Delete(context.Background(), loc.ID) assert.NoError(t, err) } func TestLocationRepositoryGetAllWithCount(t *testing.T) { ctx := context.Background() result, err := tRepos.Locations.Create(ctx, tGroup.ID, types.LocationCreate{ Name: fk.RandomString(10), Description: fk.RandomString(100), }) assert.NoError(t, err) _, err = tRepos.Items.Create(ctx, tGroup.ID, types.ItemCreate{ Name: fk.RandomString(10), Description: fk.RandomString(100), LocationID: result.ID, }) assert.NoError(t, err) results, err := tRepos.Locations.GetAll(context.Background(), tGroup.ID) assert.NoError(t, err) for _, loc := range results { if loc.ID == result.ID { assert.Equal(t, 1, loc.ItemCount) } } } func TestLocationRepository_Create(t *testing.T) { loc, err := tRepos.Locations.Create(context.Background(), tGroup.ID, locationFactory()) assert.NoError(t, err) // Get by ID foundLoc, err := tRepos.Locations.Get(context.Background(), loc.ID) assert.NoError(t, err) assert.Equal(t, loc.ID, foundLoc.ID) err = tRepos.Locations.Delete(context.Background(), loc.ID) assert.NoError(t, err) } func TestLocationRepository_Update(t *testing.T) { loc, err := tRepos.Locations.Create(context.Background(), tGroup.ID, locationFactory()) assert.NoError(t, err) updateData := types.LocationUpdate{ ID: loc.ID, Name: fk.RandomString(10), Description: fk.RandomString(100), } update, err := tRepos.Locations.Update(context.Background(), updateData) assert.NoError(t, err) foundLoc, err := tRepos.Locations.Get(context.Background(), loc.ID) assert.NoError(t, err) assert.Equal(t, update.ID, foundLoc.ID) assert.Equal(t, update.Name, foundLoc.Name) assert.Equal(t, update.Description, foundLoc.Description) err = tRepos.Locations.Delete(context.Background(), loc.ID) assert.NoError(t, err) } func TestLocationRepository_Delete(t *testing.T) { loc, err := tRepos.Locations.Create(context.Background(), tGroup.ID, locationFactory()) assert.NoError(t, err) err = tRepos.Locations.Delete(context.Background(), loc.ID) assert.NoError(t, err) _, err = tRepos.Locations.Get(context.Background(), loc.ID) assert.Error(t, err) }