Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add test case for autosave association with nested attributes. #13974

Merged
merged 1 commit into from Feb 8, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 29 additions & 0 deletions activerecord/test/cases/autosave_association_test.rb
Expand Up @@ -17,6 +17,8 @@
require 'models/tagging'
require 'models/treasure'
require 'models/eye'
require 'models/electron'
require 'models/molecule'

class TestAutosaveAssociationsInGeneral < ActiveRecord::TestCase
def test_should_not_add_the_same_callbacks_multiple_times_for_has_one
Expand Down Expand Up @@ -343,6 +345,33 @@ def test_validation_does_not_validate_stale_association_target
end
end

class TestDefaultAutosaveAssociationOnAHasManyAssociationWithAcceptsNestedAttributes < ActiveRecord::TestCase
def test_invalid_adding_with_nested_attributes
molecule = Molecule.new
valid_electron = Electron.new(name: 'electron')
invalid_electron = Electron.new

molecule.electrons = [valid_electron, invalid_electron]
molecule.save

assert_not invalid_electron.valid?
assert valid_electron.valid?
assert_not molecule.persisted?, 'Molecule should not be persisted when its electrons are invalid'
end

def test_valid_adding_with_nested_attributes
molecule = Molecule.new
valid_electron = Electron.new(name: 'electron')

molecule.electrons = [valid_electron]
molecule.save

assert valid_electron.valid?
assert molecule.persisted?
assert_equal 1, molecule.electrons.count
end
end

class TestDefaultAutosaveAssociationOnAHasManyAssociation < ActiveRecord::TestCase
fixtures :companies, :people

Expand Down
2 changes: 2 additions & 0 deletions activerecord/test/models/electron.rb
@@ -1,3 +1,5 @@
class Electron < ActiveRecord::Base
belongs_to :molecule

validates_presence_of :name
end
2 changes: 2 additions & 0 deletions activerecord/test/models/molecule.rb
@@ -1,4 +1,6 @@
class Molecule < ActiveRecord::Base
belongs_to :liquid
has_many :electrons

accepts_nested_attributes_for :electrons
end