package backfill import ( "context" "testing" "time" "github.com/OffchainLabs/prysm/v7/consensus-types/primitives" "github.com/OffchainLabs/prysm/v7/testing/require" "github.com/pkg/errors" ) func TestSortBatchDesc(t *testing.T) { orderIn := []primitives.Slot{100, 10000, 1} orderOut := []primitives.Slot{10000, 100, 1} batches := make([]batch, len(orderIn)) for i := range orderIn { batches[i] = batch{end: orderIn[i]} } sortBatchDesc(batches) for i := range orderOut { require.Equal(t, orderOut[i], batches[i].end) } } func TestWaitUntilReady(t *testing.T) { wur := batchBlockUntil var got time.Duration var errDerp = errors.New("derp") batchBlockUntil = func(_ context.Context, ur time.Duration, _ batch) error { got = ur return errDerp } b := batch{}.withRetryableError(errors.New("test error")) require.ErrorIs(t, b.waitUntilReady(t.Context()), errDerp) require.Equal(t, true, retryDelay-time.Until(b.retryAfter) < time.Millisecond) require.Equal(t, true, got < retryDelay && got > retryDelay-time.Millisecond) require.Equal(t, 1, b.retries) batchBlockUntil = wur }