Skip to content
Snippets Groups Projects
Commit d3835c96 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'feature/PRXS-2648-ItemBatcherFix' into 'master'

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

See merge request perxis/perxis-go!299
parents e85e37a7 98922e4f
No related branches found
No related tags found
Loading
......@@ -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