rests for range queries

This commit is contained in:
Dylan Knutson
2025-07-28 01:54:08 +00:00
parent ea26ca6e06
commit 2090564947

View File

@@ -1235,4 +1235,66 @@ RSpec.describe HasAuxTable do
expect(specific_b.on_aux).to eq("2b_aux") expect(specific_b.on_aux).to eq("2b_aux")
end end
end end
describe "range queries" do
ActiveRecord::Schema.define do
create_base_table :test_range_models do |t|
t.integer :base_field
t.create_aux :specific do |t|
t.integer :aux_field
end
end
end
class TestRangeModel < ActiveRecord::Base
include HasAuxTable
end
class TestRangeModelSpecific < TestRangeModel
aux_table :specific
end
before do
@bases = (0..5).map { |i| TestRangeModel.create!(base_field: i) }
@specifics =
(0..5).map do |i|
TestRangeModelSpecific.create!(base_field: i, aux_field: i)
end
end
it "works with a from..to range" do
expect(TestRangeModel.where(base_field: 1..5)).to eq(
@bases[1..5] + @specifics[1..5]
)
expect(TestRangeModelSpecific.where(base_field: 2..3)).to eq(
@specifics[2..3]
)
expect(TestRangeModelSpecific.where(aux_field: 2..3)).to eq(
@specifics[2..3]
)
expect(TestRangeModelSpecific.where(aux_field: 4..7)).to eq(
@specifics[4..5]
)
end
it "works with a from.. range" do
expect(TestRangeModel.where(base_field: 1..)).to eq(
@bases[1..5] + @specifics[1..5]
)
expect(TestRangeModelSpecific.where(aux_field: 1..)).to eq(
@specifics[1..5]
)
end
it "works with a ..to range" do
expect(TestRangeModel.where(base_field: ..4)).to eq(
@bases[0..4] + @specifics[0..4]
)
expect(TestRangeModelSpecific.where(aux_field: ..4)).to eq(
@specifics[0..4]
)
end
end
end end