mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
working tests to prevent foo bleed across multiple scenarios
This commit is contained in:
parent
e64a84f71f
commit
8002e5a1c8
2 changed files with 31 additions and 17 deletions
|
@ -1,16 +1,19 @@
|
||||||
class Foo
|
module Fooable
|
||||||
include AASM
|
def self.included(base)
|
||||||
aasm do
|
base.class_eval do
|
||||||
state :open, :initial => true, :before_exit => :before_exit
|
aasm do
|
||||||
state :closed, :before_enter => :before_enter
|
state :open, :initial => true, :before_exit => :before_exit
|
||||||
state :final
|
state :closed, :before_enter => :before_enter
|
||||||
|
state :final
|
||||||
|
|
||||||
event :close, :success => :success_callback do
|
event :close, :success => :success_callback do
|
||||||
transitions :from => [:open], :to => [:closed]
|
transitions :from => [:open], :to => [:closed]
|
||||||
end
|
end
|
||||||
|
|
||||||
event :null do
|
event :null do
|
||||||
transitions :from => [:open], :to => [:closed, :final], :guard => :always_false
|
transitions :from => [:open], :to => [:closed, :final], :guard => :always_false
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -23,10 +26,21 @@ class Foo
|
||||||
|
|
||||||
def before_enter
|
def before_enter
|
||||||
end
|
end
|
||||||
|
|
||||||
def before_exit
|
def before_exit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class Foo
|
||||||
|
include AASM
|
||||||
|
include Fooable
|
||||||
|
end
|
||||||
|
|
||||||
|
class FooGlobal
|
||||||
|
include AASM
|
||||||
|
include Fooable
|
||||||
|
end
|
||||||
|
|
||||||
class FooTwo < Foo
|
class FooTwo < Foo
|
||||||
include AASM
|
include AASM
|
||||||
aasm do
|
aasm do
|
||||||
|
|
|
@ -371,7 +371,7 @@ end
|
||||||
describe 'global error_on_all_events_callback callbacks' do
|
describe 'global error_on_all_events_callback callbacks' do
|
||||||
describe "with an error_on_all_events" do
|
describe "with an error_on_all_events" do
|
||||||
before do
|
before do
|
||||||
class Foo
|
class FooGlobal
|
||||||
# this hack is needed to allow testing of parameters, since RSpec
|
# this hack is needed to allow testing of parameters, since RSpec
|
||||||
# destroys a method's arity when mocked
|
# destroys a method's arity when mocked
|
||||||
attr_accessor :data
|
attr_accessor :data
|
||||||
|
@ -385,7 +385,7 @@ describe 'global error_on_all_events_callback callbacks' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@foo = Foo.new
|
@foo = FooGlobal.new
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'an implemented callback that accepts error' do
|
it_behaves_like 'an implemented callback that accepts error' do
|
||||||
|
@ -408,7 +408,7 @@ end
|
||||||
describe 'global ensure_on_all_events_callback callbacks' do
|
describe 'global ensure_on_all_events_callback callbacks' do
|
||||||
describe "with an ensure_on_all_events" do
|
describe "with an ensure_on_all_events" do
|
||||||
before do
|
before do
|
||||||
class Foo
|
class FooGlobal
|
||||||
# this hack is needed to allow testing of parameters, since RSpec
|
# this hack is needed to allow testing of parameters, since RSpec
|
||||||
# destroys a method's arity when mocked
|
# destroys a method's arity when mocked
|
||||||
attr_accessor :data
|
attr_accessor :data
|
||||||
|
@ -422,7 +422,7 @@ describe 'global ensure_on_all_events_callback callbacks' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@foo = Foo.new
|
@foo = FooGlobal.new
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'an implemented callback' do
|
it_behaves_like 'an implemented callback' do
|
||||||
|
|
Loading…
Reference in a new issue