@@ -40,14 +40,14 @@ class ActiveRecordEnumeratorTest < TestCase
4040 end
4141 end
4242
43- test "#batches yields batches of records with the last record's cursor position" do
43+ test "#batches yields batches of records with the first record's cursor position" do
4444 enum = build_enumerator . batches
4545 assert_equal ( 10 , enum . size )
4646
4747 products = Product . order ( :id ) . take ( 4 ) . each_slice ( 2 ) . to_a
4848
4949 enum . first ( 2 ) . each_with_index do |( element , cursor ) , index |
50- assert_equal ( [ products [ index ] , products [ index ] . last . id ] , [ element , cursor ] )
50+ assert_equal ( [ products [ index ] , products [ index ] . first . id ] , [ element , cursor ] )
5151 end
5252 end
5353
@@ -101,7 +101,7 @@ class ActiveRecordEnumeratorTest < TestCase
101101 enum = build_enumerator ( batch_size : 4 ) . batches
102102 products = Product . order ( :id ) . take ( 4 )
103103
104- assert_equal ( [ products , products . last . id ] , enum . first )
104+ assert_equal ( [ products , products . first . id ] , enum . first )
105105 end
106106
107107 test "paginates using integer conditionals for primary key when no columns are defined" do
@@ -116,14 +116,14 @@ class ActiveRecordEnumeratorTest < TestCase
116116 enum = build_enumerator ( columns : [ :id ] ) . batches
117117 products = Product . order ( :id ) . take ( 2 )
118118
119- assert_equal ( [ products , products . last . id ] , enum . first )
119+ assert_equal ( [ products , products . first . id ] , enum . first )
120120 end
121121
122122 test "single column as symbol" do
123123 enum = build_enumerator ( columns : :id ) . batches
124124 products = Product . order ( :id ) . take ( 2 )
125125
126- assert_equal ( [ products , products . last . id ] , enum . first )
126+ assert_equal ( [ products , products . first . id ] , enum . first )
127127 end
128128
129129 test "raises when columns does not include primary key" do
@@ -142,7 +142,7 @@ class ActiveRecordEnumeratorTest < TestCase
142142 enum = build_enumerator ( columns : [ :updated_at , :id ] ) . batches
143143 products = Product . order ( :updated_at , :id ) . take ( 2 )
144144
145- assert_equal ( [ products , [ products . last . updated_at . strftime ( SQL_TIME_FORMAT ) , products . last . id ] ] , enum . first )
145+ assert_equal ( [ products , [ products . first . updated_at . strftime ( SQL_TIME_FORMAT ) , products . first . id ] ] , enum . first )
146146 end
147147
148148 test "columns configured with primary key only queries primary key column once" do
@@ -163,7 +163,7 @@ class ActiveRecordEnumeratorTest < TestCase
163163
164164 test ":order with single direction" do
165165 enum = build_enumerator ( order : :desc ) . batches
166- product_batches = Product . order ( id : :desc ) . take ( 4 ) . in_groups_of ( 2 ) . map { |products | [ products , products . last . id ] }
166+ product_batches = Product . order ( id : :desc ) . take ( 4 ) . in_groups_of ( 2 ) . map { |products | [ products , products . first . id ] }
167167
168168 enum . first ( 2 ) . each_with_index do |( batch , cursor ) , index |
169169 assert_equal ( product_batches [ index ] , [ batch , cursor ] )
@@ -203,24 +203,22 @@ class ActiveRecordEnumeratorTest < TestCase
203203 enum = build_enumerator ( cursor : one . id ) . batches
204204
205205 queries = track_queries do
206- assert_equal ( [ [ one , two ] , two . id ] , enum . first )
206+ assert_equal ( [ [ one , two ] , one . id ] , enum . first )
207207 end
208208 assert queries . any? ( /"products"\. "id" >= 1/ )
209209
210- assert_equal ( [ [ three , four ] , four . id ] , enum . first )
210+ assert_equal ( [ [ three , four ] , three . id ] , enum . first )
211211 end
212212
213213 test "can be resumed on multiple columns" do
214214 enum = build_enumerator ( columns : [ :created_at , :id ] ) . batches
215215 products = Product . order ( :created_at , :id ) . take ( 2 )
216216
217- cursor = [ products . last . created_at . strftime ( SQL_TIME_FORMAT ) , products . last . id ]
217+ cursor = [ products . first . created_at . strftime ( SQL_TIME_FORMAT ) , products . first . id ]
218218 assert_equal ( [ products , cursor ] , enum . first )
219219
220220 enum = build_enumerator ( columns : [ :created_at , :id ] , cursor : cursor ) . batches
221- products = Product . order ( :created_at , :id ) . offset ( 1 ) . take ( 2 )
222-
223- cursor = [ products . last . created_at . strftime ( SQL_TIME_FORMAT ) , products . last . id ]
221+ cursor = [ products . first . created_at . strftime ( SQL_TIME_FORMAT ) , products . first . id ]
224222 assert_equal ( [ products , cursor ] , enum . first )
225223 end
226224
0 commit comments