State Machine, Model Validations i RSpec

Oto moja obecna definicja klasy i specyfikacja:

class Event < ActiveRecord::Base

  # ...

  state_machine :initial => :not_started do

    event :game_started do
      transition :not_started => :in_progress
    end

    event :game_ended do
      transition :in_progress => :final
    end

    event :game_postponed do
      transition [:not_started, :in_progress] => :postponed
    end

    state :not_started, :in_progress, :postponed do
      validate :end_time_before_final
    end
  end

  def end_time_before_final
    return if end_time.blank?
    errors.add :end_time, "must be nil until event is final" if end_time.present?
  end

end

describe Event do
  context 'not started, in progress or postponed' do
    describe '.end_time_before_final' do
      ['not_started', 'in_progress', 'postponed'].each do |state|
        it 'should not allow end_time to be present' do
          event = Event.new(state: state, end_time: Time.now.utc)
          event.valid?
          event.errors[:end_time].size.should == 1
          event.errors[:end_time].should == ['must be nil until event is final']
        end
      end
    end
  end
end

Kiedy uruchamiam specyfikację, dostaję dwie awarie i jeden sukces. Nie mam pojęcia dlaczego. Dla dwóch stanów,return if end_time.blank? oświadczenie wend_time_before_final metoda przyjmuje wartość true, gdy za każdym razem powinna być fałszywa. „odroczone” to jedyny stan, który wydaje się mijać. Jakiś pomysł na to, co może się tutaj wydarzyć?

questionAnswers(1)

yourAnswerToTheQuestion