spec/granite/form/model/associations_spec.rb in granite-form-0.2.0 vs spec/granite/form/model/associations_spec.rb in granite-form-0.3.0
- old
+ new
@@ -5,11 +5,11 @@
before do
stub_model(:nobody) do
include Granite::Form::Model::Associations
end
stub_model(:project) do
- include Granite::Form::Model::Lifecycle
+ include Granite::Form::Model::Persistence
end
stub_model(:user, Nobody) do
include Granite::Form::Model::Associations
embeds_many :projects
end
@@ -63,11 +63,11 @@
end
context do
before do
stub_model(:project) do
- include Granite::Form::Model::Lifecycle
+ include Granite::Form::Model::Persistence
include Granite::Form::Model::Associations
attribute :title, String
validates :title, presence: true
@@ -78,11 +78,11 @@
validates :name, presence: true
end
end
stub_model(:profile) do
- include Granite::Form::Model::Lifecycle
+ include Granite::Form::Model::Persistence
attribute :first_name, String
attribute :last_name, String
validates :first_name, presence: true
@@ -156,30 +156,9 @@
specify { expect(user.association('my_profile')).to equal(user.association(:profile)) }
end
describe '#association_names' do
specify { expect(user.association_names).to eq(%i[profile projects]) }
- end
-
- describe '#apply_association_changes!' do
- let(:profile) { Profile.new first_name: 'Name' }
- let(:project) { Project.new title: 'Project' }
- let(:user) { User.new(profile: profile, projects: [project]) }
- before { project.build_author(name: 'Author') }
-
- specify do
- expect { user.apply_association_changes! }.to change { user.attributes['profile'] }
- .from(nil).to('first_name' => 'Name', 'last_name' => nil)
- end
- specify do
- expect { user.apply_association_changes! }.to change { user.attributes['projects'] }
- .from(nil).to([{'title' => 'Project', 'author' => {'name' => 'Author'}}])
- end
-
- context do
- let(:project) { Project.new }
- specify { expect { user.apply_association_changes! }.to raise_error Granite::Form::AssociationChangesNotApplied }
- end
end
describe '#instantiate' do
before { User.send(:include, Granite::Form::Model::Persistence) }
let(:profile) { Profile.new first_name: 'Name' }