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