phase002 complete
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,6 @@
|
||||
FactoryBot.define do
|
||||
factory :user do
|
||||
sequence(:name) { |n| "User #{n}" }
|
||||
sequence(:email) { |n| "user#{n}@example.com" }
|
||||
end
|
||||
end
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user