Refs [#206] Initialize aasm state after initialize for mongoid
This commit is contained in:
parent
d43c6a98a0
commit
1c37b50871
|
@ -35,11 +35,9 @@ module AASM
|
|||
base.extend AASM::Persistence::MongoidPersistence::ClassMethods
|
||||
base.send(:include, AASM::Persistence::MongoidPersistence::InstanceMethods)
|
||||
|
||||
# Mongoid's Validatable gem dependency goes not have a before_validation_on_xxx hook yet.
|
||||
# base.before_validation_on_create :aasm_ensure_initial_state
|
||||
base.before_validation :aasm_ensure_initial_state
|
||||
# ensure initial aasm state even when validations are skipped
|
||||
base.before_create :aasm_ensure_initial_state
|
||||
base.after_initialize do
|
||||
aasm_ensure_initial_state
|
||||
end
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
|
|
|
@ -6,7 +6,7 @@ class SimpleNewDslMongoid
|
|||
|
||||
aasm :column => :status
|
||||
aasm do
|
||||
state :unknown_scope
|
||||
state :unknown_scope, :initial => true
|
||||
state :new
|
||||
end
|
||||
end
|
||||
|
|
|
@ -133,15 +133,11 @@ describe 'mongoid' do
|
|||
describe "instance methods" do
|
||||
let(:simple) {SimpleNewDslMongoid.new}
|
||||
|
||||
it "should call aasm_ensure_initial_state on validation before create" do
|
||||
expect(simple).to receive(:aasm_ensure_initial_state).and_return(true)
|
||||
simple.valid?
|
||||
it "should initialize the aasm state on instantiation" do
|
||||
expect(SimpleNewDslMongoid.new.status).to eql 'unknown_scope'
|
||||
expect(SimpleNewDslMongoid.new.aasm.current_state).to eql :unknown_scope
|
||||
end
|
||||
|
||||
it "should call aasm_ensure_initial_state before create, even if skipping validations" do
|
||||
expect(simple).to receive(:aasm_ensure_initial_state).and_return(true)
|
||||
simple.save(:validate => false)
|
||||
end
|
||||
end
|
||||
|
||||
rescue LoadError
|
||||
|
|
Loading…
Reference in New Issue