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' }