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
+34
View File
@@ -0,0 +1,34 @@
require "rails_helper"
RSpec.describe MaintenanceSchedule do
it "has a valid factory" do
expect(build(:maintenance_schedule)).to be_valid
end
it "requires all fields" do
schedule = build(:maintenance_schedule, vehicle: nil, maintenance_type: nil, mileage_interval: nil, time_interval: nil)
expect(schedule).not_to be_valid
expect(schedule.errors.attribute_names).to include(:vehicle, :maintenance_type, :mileage_interval, :time_interval)
end
it "requires positive integer intervals" do
schedule = build(:maintenance_schedule, mileage_interval: 0, time_interval: 0)
expect(schedule).not_to be_valid
expect(schedule.errors[:mileage_interval]).to be_present
expect(schedule.errors[:time_interval]).to be_present
end
it "requires maintenance type to be unique per vehicle case-insensitively" do
vehicle = create(:vehicle)
create(:maintenance_schedule, vehicle: vehicle, maintenance_type: "Oil Change")
duplicate = build(:maintenance_schedule, vehicle: vehicle, maintenance_type: "oil change")
other_vehicle_schedule = build(:maintenance_schedule, maintenance_type: "oil change")
expect(duplicate).not_to be_valid
expect(duplicate.errors[:maintenance_type]).to be_present
expect(other_vehicle_schedule).to be_valid
end
end