rests for range queries
This commit is contained in:
@@ -1235,4 +1235,66 @@ RSpec.describe HasAuxTable do
|
||||
expect(specific_b.on_aux).to eq("2b_aux")
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user