Added validation in EventSchedule model and test in event_schedule_spec
EventSchedule start time should be in hours range of the conference.Therefore it adds validation on start_time attribute of event schedule model. It also adds test for the same.
This commit is contained in:
parent
be33f345a1
commit
95d459f058
6 changed files with 48 additions and 8 deletions
|
|
@ -10,6 +10,8 @@ class EventSchedule < ActiveRecord::Base
|
|||
validates :room, presence: true
|
||||
validates :start_time, presence: true
|
||||
validates :event, uniqueness: { scope: :schedule }
|
||||
validate :start_after_end_hour
|
||||
validate :start_before_start_hour
|
||||
|
||||
scope :confirmed, -> { joins(:event).where('state = ?', 'confirmed') }
|
||||
scope :canceled, -> { joins(:event).where('state = ?', 'canceled') }
|
||||
|
|
@ -37,6 +39,16 @@ class EventSchedule < ActiveRecord::Base
|
|||
|
||||
private
|
||||
|
||||
def start_after_end_hour
|
||||
return unless event && start_time && event.program && event.program.conference && event.program.conference.end_hour
|
||||
errors.add(:start_time, "can't be after the conference end hour (#{event.program.conference.end_hour})") if start_time.hour >= event.program.conference.end_hour
|
||||
end
|
||||
|
||||
def start_before_start_hour
|
||||
return unless event && start_time && event.program && event.program.conference && event.program.conference.start_hour
|
||||
errors.add(:start_time, "can't be before the conference start hour (#{event.program.conference.start_hour})") if start_time.hour < event.program.conference.start_hour
|
||||
end
|
||||
|
||||
def conference_id
|
||||
schedule.program.conference_id
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue