46 lines
1.4 KiB
Ruby
46 lines
1.4 KiB
Ruby
# typed: false
|
|
# frozen_string_literal: true
|
|
|
|
RSpec.describe HasAuxTable::AuxTableConfig do
|
|
# const :aux_table_name, Symbol
|
|
# const :aux_association_name, Symbol
|
|
# const :main_association_name, Symbol
|
|
# const :main_class, T.class_of(ActiveRecord::Base)
|
|
# const :aux_class, T.class_of(ActiveRecord::Base)
|
|
# const :foreign_key, KeyType
|
|
# const :primary_key, KeyType
|
|
|
|
it "identifies columns on the aux table" do
|
|
driver_aux_config = Driver.aux_table_config(:driver)
|
|
expect(driver_aux_config.aux.column_names).to contain_exactly(
|
|
"license_number",
|
|
"car_id"
|
|
)
|
|
|
|
expect(driver_aux_config.main.column_names).to contain_exactly(
|
|
"type",
|
|
"id",
|
|
"name",
|
|
"created_at",
|
|
"updated_at"
|
|
)
|
|
end
|
|
|
|
describe "#remap_conditions" do
|
|
it "works with simple conditions" do
|
|
driver_aux_config = Driver.aux_table_config(:driver)
|
|
conditions = { name: "John Doe", car_id: 1 }
|
|
conditions = driver_aux_config.remap_conditions(conditions)
|
|
expect(conditions).to eq({ name: "John Doe", driver_aux: { car_id: 1 } })
|
|
end
|
|
|
|
it "partitions columns referring to associations" do
|
|
car = Car.create!(name: "Toyota Prius")
|
|
driver_aux_config = Driver.aux_table_config(:driver)
|
|
conditions = { car: car }
|
|
conditions = driver_aux_config.remap_conditions(conditions)
|
|
expect(conditions).to eq({ driver_aux: { "car_id" => car.id } })
|
|
end
|
|
end
|
|
end
|