Skip to content
Snippets Groups Projects
Commit 98922e4f authored by Anton Sattarov's avatar Anton Sattarov :cucumber: Committed by Pavel Antonov
Browse files

Исправлена ошибка при которой не передавались переводы при пакетной обработке элементов коллекций

parent e85e37a7
No related branches found
No related tags found
No related merge requests found
......@@ -27,33 +27,26 @@ func (b *BatchProcessor) getBatch(ctx context.Context) ([]*Item, bool, error) {
var total int
if b.FindPublishedOptions != nil {
opts := *b.FindPublishedOptions
opts.FindOptions = *options.New(b.processed, b.limit, b.sort...)
res, total, err = b.Items.FindPublished(
ctx,
b.SpaceID,
b.EnvID,
b.CollectionID,
b.Filter,
&FindPublishedOptions{
Regular: b.FindPublishedOptions.Regular,
Hidden: b.FindPublishedOptions.Hidden,
Templates: b.FindPublishedOptions.Templates,
FindOptions: *options.New(b.processed, b.limit, b.sort...),
},
&opts,
)
} else {
opts := *b.FindOptions
opts.FindOptions = *options.New(b.processed, b.limit, b.sort...)
res, total, err = b.Items.Find(
ctx,
b.SpaceID,
b.EnvID,
b.CollectionID,
b.Filter,
&FindOptions{
Deleted: b.FindOptions.Deleted,
Regular: b.FindOptions.Regular,
Hidden: b.FindOptions.Hidden,
Templates: b.FindOptions.Templates,
FindOptions: *options.New(b.processed, b.limit, b.sort...),
},
&opts,
)
}
......
......@@ -5,6 +5,7 @@ import (
"testing"
"git.perx.ru/perxis/perxis-go/pkg/environments"
"git.perx.ru/perxis/perxis-go/pkg/errors"
"git.perx.ru/perxis/perxis-go/pkg/options"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
......@@ -58,4 +59,39 @@ func TestBatchProcessor(t *testing.T) {
require.NoError(t, err)
assert.Equal(t, 1000/25, counter)
})
t.Run("With FindOptions2", func(t *testing.T) {
f := &FindOptions{
Deleted: true,
Hidden: true,
Regular: true,
Templates: true,
TranslationsIDs: []string{"*"},
LocaleID: "en",
}
itemssvc := &Stub{
FindResult: func(req StubFindRequest) StubFindResult {
fo := req.Options[0]
if !assert.Equal(t, f, fo) {
return StubFindResult{Items: nil, Total: 0, Error: errors.New("FindOptions not equal")}
}
return StubFindResult{Items: make([]*Item, fo.Limit), Total: 25, Error: nil}
},
}
f.FindOptions = *options.New(0, 25)
b := &BatchProcessor{
Items: itemssvc,
SpaceID: "sp",
EnvID: environments.DefaultEnvironment,
CollectionID: "col",
FindOptions: f,
}
var counter int
_, err := b.Do(context.Background(), func(batch []*Item) error { counter++; return nil })
require.NoError(t, err)
})
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment