test: cover OrmQueryBatchesTest, teardown and OrmQueryCombinatorsTest

This commit is contained in:
dualfroz committed 2026-09-13 11:44:11 +02:00
1 parent cec2ef0e0b
commit ac7e535986
3 files changed
+200

No files matched your search

+48
View File
@@ -0,0 +1,48 @@
require 'minitest/autorun'
require 'prism'
require 'tmpdir'
class OrmQueryBatchesTest < Minitest::Test
def setup
@dir = Dir.mktmpdir('prism-query-batches')
@store = Prism::Orm::Store.new(File.join(@dir, 'test.pstore'))
@store.create_table(:records, %w[id seq])
record_class = Class.new(Prism::Orm::Model) do
table_name :records
end
record_class.store = @store
Object.const_set(:Rec, record_class)
25.times { |i| Rec.create!(seq: i) }
end
def teardown
FileUtils.remove_entry(@dir)
Object.send(:remove_const, :Rec) if Object.const_defined?(:Rec)
end
def test_find_each_yields_every_record_once
seen = []
Rec.order(:seq).find_each(batch_size: 7) { |record| seen << record.seq }
assert_equal (0..24).to_a, seen
end
def test_find_each_without_block_returns_enumerator
enum = Rec.order(:seq).find_each
assert_kind_of Enumerator, enum
assert_equal 25, enum.to_a.size
end
def test_find_in_batches_respects_batch_size
batch_sizes = []
Rec.order(:seq).find_in_batches(batch_size: 10) { |batch| batch_sizes << batch.size }
assert_equal [10, 10, 5], batch_sizes
end
def test_find_in_batches_default_size_yields_single_batch_for_small_sets
batches = []
Rec.order(:seq).find_in_batches { |batch| batches << batch }
assert_equal 1, batches.size
assert_equal 25, batches.first.size
end
end