initialize the state even if validation is skipped (for Mongoid)

This commit is contained in:
Thorsten Böttger 2013-12-16 23:42:03 +01:00
parent d981489768
commit 09e5ae5937
2 changed files with 18 additions and 0 deletions

View File

@ -36,6 +36,8 @@ module AASM
# 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
end
module ClassMethods

View File

@ -130,6 +130,22 @@ describe 'mongoid', :if => Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version
end
end
describe "instance methods" do
let(:simple) {SimpleNewDslMongoid.new}
it "should call aasm_ensure_initial_state on validation before create" do
simple.should_receive(:aasm_ensure_initial_state).and_return(true)
simple.valid?
end
it "should call aasm_ensure_initial_state before create, even if skipping validations" do
simple.should_receive(:aasm_ensure_initial_state).and_return(true)
simple.save(:validate => false)
end
end
rescue LoadError
puts "Not running Mongoid specs because mongoid gem if not installed!!!"
end