Skip to content

Commit

Permalink
initialize the state even if validation is skipped (for Mongoid)
Browse files Browse the repository at this point in the history
  • Loading branch information
alto committed Dec 16, 2013
1 parent d981489 commit 09e5ae5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/aasm/persistence/mongoid_persistence.rb
Expand Up @@ -36,6 +36,8 @@ def self.included(base)
# 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
Expand Down
16 changes: 16 additions & 0 deletions spec/unit/persistence/mongoid_persistance_spec.rb
Expand Up @@ -130,6 +130,22 @@
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
Expand Down

0 comments on commit 09e5ae5

Please sign in to comment.