1
0
Fork 0
mirror of https://github.com/aasm/aasm synced 2023-03-27 23:22:41 -04:00

transitions_from_state considers missing from state

This commit is contained in:
Daniel Rikowski 2014-06-13 21:05:14 +02:00
parent ab29f0abd4
commit 40b9848571
2 changed files with 18 additions and 1 deletions

View file

@ -26,7 +26,7 @@ module AASM
end
def transitions_from_state(state)
@transitions.select { |t| t.from == state }
@transitions.select { |t| t.from.nil? or t.from == state }
end
def transitions_to_state?(state)

View file

@ -58,6 +58,23 @@ describe 'transition inspection' do
end
end
describe 'transition inspection without from' do
let(:event) do
AASM::Event.new(:run) do
transitions :to => :running
end
end
it 'should support inspecting transitions from other states' do
expect(event.transitions_from_state(:sleeping).map(&:to)).to eq([:running])
expect(event.transitions_from_state?(:sleeping)).to be_true
expect(event.transitions_from_state(:cleaning).map(&:to)).to eq([:running])
expect(event.transitions_from_state?(:cleaning)).to be_true
end
end
describe 'firing an event' do
it 'should return nil if the transitions are empty' do
obj = double('object', :aasm => double('aasm', :current_state => 'open'))