Files
has_aux_table/spec/aux_table_config_spec.rb
2025-07-24 04:04:08 +00:00

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