spec/parentless_spec.rb in compo-0.4.0 vs spec/parentless_spec.rb in compo-0.5.0

- old
+ new

@@ -1,30 +1,33 @@ require 'spec_helper' require 'compo' -describe Compo::Composites::Parentless do +RSpec.describe Compo::Composites::Parentless do let(:child) { double(:child) } describe '#add' do before(:each) { allow(child).to receive(:update_parent) } it 'returns the given child exactly' do expect(subject.add(:id, child)).to be(child) end it 'calls #update_parent on the child with a Parentless' do - expect(child).to receive(:update_parent).once do |parent, _| - expect(parent).to be_a(Compo::Composites::Parentless) - end subject.add(:id, child) + + expect(child).to have_received(:update_parent).once.with( + a_kind_of(Compo::Composites::Parentless), + anything + ) end it 'calls #update_parent on the child with a nil-returning ID proc' do - expect(child).to receive(:update_parent).once do |_, idp| - expect(idp.call).to be_nil - end subject.add(:id, child) + expect(child).to have_received(:update_parent).once.with( + anything, + an_object_satisfying { |idp| idp.call.nil? } + ) end end describe '#remove' do it 'returns the given child exactly' do @@ -38,15 +41,22 @@ describe '#url' do specify { expect(subject.url).to eq('') } end - describe '#child_url' do - specify { expect(subject.child_url(:id)).to eq('') } - end - describe '#parent' do it 'returns the exact same Parentless object' do expect(subject.parent).to be(subject) + end + end + + describe '#on_node' do + it 'ignores the block given' do + expect { |block| subject.on_node(&block) }.to_not yield_control + end + + it 'returns nil' do + expect(subject.on_node { |subject| subject }).to be_nil + expect(subject.on_node { 3 }).to be_nil end end end