spec/nanoc/base/entities/item_rep_spec.rb in nanoc-4.5.2 vs spec/nanoc/base/entities/item_rep_spec.rb in nanoc-4.5.3
- old
+ new
@@ -1,226 +1,4 @@
describe Nanoc::Int::ItemRep do
let(:item) { Nanoc::Int::Item.new('asdf', {}, '/foo.md') }
let(:rep) { Nanoc::Int::ItemRep.new(item, :giraffe) }
-
- describe '#compiled_content' do
- let(:snapshot_name) { raise 'override me' }
- subject { rep.compiled_content(snapshot: snapshot_name) }
-
- shared_examples 'a non-moving snapshot with content' do
- context 'no snapshot def' do
- it 'raises' do
- expect { subject }.to raise_error(Nanoc::Int::Errors::NoSuchSnapshot)
- end
- end
-
- context 'snapshot def exists' do
- before do
- rep.snapshot_defs = [Nanoc::Int::SnapshotDef.new(snapshot_name)]
- rep.snapshot_contents = { snapshot_name => content }
- end
-
- context 'content is textual' do
- let(:content) { Nanoc::Int::TextualContent.new('hellos') }
- it { is_expected.to eql('hellos') }
- end
-
- context 'content is binary' do
- before { File.write('donkey.dat', 'binary data') }
- let(:content) { Nanoc::Int::BinaryContent.new(File.expand_path('donkey.dat')) }
-
- it 'raises' do
- expect { subject }.to raise_error(Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem)
- end
- end
- end
- end
-
- shared_examples 'a non-moving snapshot' do
- include_examples 'a non-moving snapshot with content'
-
- context 'snapshot def exists, but not content' do
- before do
- rep.snapshot_defs = [Nanoc::Int::SnapshotDef.new(snapshot_name)]
- rep.snapshot_contents = {}
- end
-
- it 'errors' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
- end
-
- shared_examples 'snapshot :last' do
- context 'no snapshot def' do
- it 'errors' do
- expect { subject }.to raise_error(Nanoc::Int::Errors::NoSuchSnapshot)
- end
- end
-
- context 'snapshot exists' do
- context 'snapshot is not final' do
- before do
- rep.snapshot_defs = [Nanoc::Int::SnapshotDef.new(snapshot_name)]
- end
-
- context 'snapshot content does not exist' do
- before do
- rep.snapshot_contents = {}
- end
-
- it 'errors' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'snapshot content exists' do
- context 'content is textual' do
- before do
- rep.snapshot_contents[snapshot_name] = Nanoc::Int::TextualContent.new('hellos')
- end
-
- context 'not compiled' do
- before { rep.compiled = false }
-
- it 'raises' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'compiled' do
- before { rep.compiled = true }
-
- it { is_expected.to eql('hellos') }
- end
- end
-
- context 'content is binary' do
- before do
- File.write('donkey.dat', 'binary data')
- rep.snapshot_contents[snapshot_name] = Nanoc::Int::BinaryContent.new(File.expand_path('donkey.dat'))
- end
-
- context 'not compiled' do
- before { rep.compiled = false }
-
- it 'raises' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'compiled' do
- before { rep.compiled = true }
-
- it 'raises' do
- expect { subject }.to raise_error(Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem)
- end
- end
- end
- end
- end
-
- context 'snapshot is final' do
- before do
- rep.snapshot_defs = [Nanoc::Int::SnapshotDef.new(snapshot_name)]
- end
-
- context 'snapshot content does not exist' do
- before do
- rep.snapshot_contents = {}
- end
-
- it 'errors' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'snapshot content exists' do
- context 'content is textual' do
- before do
- rep.snapshot_contents[snapshot_name] = Nanoc::Int::TextualContent.new('hellos')
- end
-
- context 'not compiled' do
- before { rep.compiled = false }
-
- it 'errors' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'compiled' do
- before { rep.compiled = true }
-
- it { is_expected.to eql('hellos') }
- end
- end
-
- context 'content is binary' do
- before do
- File.write('donkey.dat', 'binary data')
- rep.snapshot_contents[snapshot_name] = Nanoc::Int::BinaryContent.new(File.expand_path('donkey.dat'))
- end
-
- context 'not compiled' do
- before { rep.compiled = false }
-
- it 'raises' do
- expect { subject }.to yield_from_fiber(an_instance_of(Nanoc::Int::Errors::UnmetDependency))
- end
- end
-
- context 'compiled' do
- before { rep.compiled = true }
-
- it 'raises' do
- expect { subject }.to raise_error(Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem)
- end
- end
- end
- end
- end
- end
- end
-
- context 'snapshot nil' do
- let(:snapshot_name) { :last }
- subject { rep.compiled_content(snapshot: nil) }
- include_examples 'snapshot :last'
- end
-
- context 'snapshot not specified' do
- subject { rep.compiled_content }
-
- context 'pre exists' do
- before { rep.snapshot_contents[:pre] = Nanoc::Int::TextualContent.new('omg') }
- let(:snapshot_name) { :pre }
- include_examples 'a non-moving snapshot with content'
- end
-
- context 'pre does not exist' do
- let(:snapshot_name) { :last }
- include_examples 'snapshot :last'
- end
- end
-
- context 'snapshot :pre specified' do
- let(:snapshot_name) { :pre }
- include_examples 'a non-moving snapshot'
- end
-
- context 'snapshot :post specified' do
- let(:snapshot_name) { :post }
- include_examples 'a non-moving snapshot'
- end
-
- context 'snapshot :last specified' do
- let(:snapshot_name) { :last }
- include_examples 'snapshot :last'
- end
-
- context 'snapshot :donkey specified' do
- let(:snapshot_name) { :donkey }
- include_examples 'a non-moving snapshot'
- end
- end
end