Files
car-tracker/spec/factories/maintenance_entries.rb
2026-09-15 20:28:07 -06:00

33 lines
876 B
Ruby

FactoryBot.define do
factory :maintenance_entry do
vehicle
association :updated_by_user, factory: :user
name { "Oil Change" }
notes { "Oil change performed by Fleet Service Center." }
odometer { 10_500 }
cost { 89.95 }
date { Date.current }
transient do
ensure_matching_schedule { true }
end
after(:build) do |maintenance_entry, evaluator|
next unless evaluator.ensure_matching_schedule
next if maintenance_entry.vehicle.blank?
scheduled = maintenance_entry.vehicle.maintenance_schedules.any? do |schedule|
schedule.maintenance_type.casecmp?(maintenance_entry.name)
end
next if scheduled
maintenance_entry.vehicle.maintenance_schedules.build(
maintenance_type: maintenance_entry.name,
mileage_interval: 5_000,
time_interval: 180
)
end
end
end