spec/nanoc/base/repos/dependency_store_spec.rb in nanoc-4.7.2 vs spec/nanoc/base/repos/dependency_store_spec.rb in nanoc-4.7.3

- old
+ new

@@ -190,6 +190,78 @@ expect(store.objects_causing_outdatedness_of(obj_d)).to eq([obj_d]).or eq([obj_e]) expect(store.objects_causing_outdatedness_of(obj_e)).to eq([obj_d]).or eq([obj_e]) end end end + + describe '#record_dependency' do + context 'no props' do + subject { store.record_dependency(obj_a, obj_b) } + + it 'records a dependency' do + expect { subject } + .to change { store.objects_causing_outdatedness_of(obj_a) } + .from([]) + .to([obj_b]) + end + end + + context 'compiled content prop' do + subject { store.record_dependency(obj_a, obj_b, compiled_content: true) } + + it 'records a dependency' do + expect { subject } + .to change { store.objects_causing_outdatedness_of(obj_a) } + .from([]) + .to([obj_b]) + end + + it 'records a dependency with the right props' do + subject + deps = store.dependencies_causing_outdatedness_of(obj_a) + + expect(deps.first.props.attributes?).not_to be + expect(deps.first.props.compiled_content?).to be + end + end + + context 'attribute prop (true)' do + subject { store.record_dependency(obj_a, obj_b, attributes: true) } + + it 'records a dependency' do + expect { subject } + .to change { store.objects_causing_outdatedness_of(obj_a) } + .from([]) + .to([obj_b]) + end + + it 'records a dependency with the right props' do + subject + deps = store.dependencies_causing_outdatedness_of(obj_a) + + expect(deps.first.props.attributes?).to be + expect(deps.first.props.attributes).to be + expect(deps.first.props.compiled_content?).not_to be + end + end + + context 'attribute prop (true)' do + subject { store.record_dependency(obj_a, obj_b, attributes: [:giraffe]) } + + it 'records a dependency' do + expect { subject } + .to change { store.objects_causing_outdatedness_of(obj_a) } + .from([]) + .to([obj_b]) + end + + it 'records a dependency with the right props' do + subject + deps = store.dependencies_causing_outdatedness_of(obj_a) + + expect(deps.first.props.attributes?).to be + expect(deps.first.props.attributes).to match_array([:giraffe]) + expect(deps.first.props.compiled_content?).not_to be + end + end + end end