phase002 complete

This commit is contained in:
2026-09-15 20:28:07 -06:00
parent 9793cd08bc
commit a3a65c24ed
28 changed files with 656 additions and 13 deletions
+10
View File
@@ -0,0 +1,10 @@
FactoryBot.define do
factory :fuel_entry do
vehicle
association :updated_by_user, factory: :user
odometer { 10_500 }
gallons_pumped { 18.25 }
price_paid { 47.62 }
date { Date.current }
end
end
+32
View File
@@ -0,0 +1,32 @@
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
+8
View File
@@ -0,0 +1,8 @@
FactoryBot.define do
factory :maintenance_schedule do
vehicle
maintenance_type { "Oil Change" }
mileage_interval { 5_000 }
time_interval { 180 }
end
end
+6
View File
@@ -0,0 +1,6 @@
FactoryBot.define do
factory :user do
sequence(:name) { |n| "User #{n}" }
sequence(:email) { |n| "user#{n}@example.com" }
end
end
+13
View File
@@ -0,0 +1,13 @@
FactoryBot.define do
factory :vehicle do
make { "Ford" }
model { "F-150" }
year { Date.current.year }
color { "White" }
sequence(:vin) { |n| "1FTFW1E#{n.to_s.rjust(10, '0')}" }
sequence(:licence_plate) { |n| "FLT#{n.to_s.rjust(4, '0')}" }
current_odometer { 10_000 }
fuel_tank_size { 26.0 }
active { true }
end
end