Sha256: f4a8fc7f7608275b758acfcd47b37673c6e3c1991eee87ae76c6bce3edcaaffb

Contents?: true

Size: 1.58 KB

Versions: 18

Compression:

Stored size: 1.58 KB

Contents

describe Nanoc::PostCompileItemView do
  let(:item) { Nanoc::Int::Item.new('blah', {}, '/foo.md') }
  let(:rep_a) { Nanoc::Int::ItemRep.new(item, :no_mod) }
  let(:rep_b) { Nanoc::Int::ItemRep.new(item, :modded).tap { |r| r.modified = true } }

  let(:reps) do
    Nanoc::Int::ItemRepRepo.new.tap do |reps|
      reps << rep_a
      reps << rep_b
    end
  end

  let(:view_context) { double(:view_context, reps: reps) }
  let(:view) { described_class.new(item, view_context) }

  shared_examples 'a method that returns modified reps only' do
    it 'returns only modified items' do
      expect(subject.size).to eq(1)
      expect(subject.map(&:name)).to eq(%i(modded))
    end

    it 'returns an array' do
      expect(subject.class).to eql(Array)
    end
  end

  shared_examples 'a method that returns PostCompileItemRepViews' do
    it 'returns PostCompileItemRepViews' do
      expect(subject).to all(be_a(Nanoc::PostCompileItemRepView))
    end
  end

  describe '#modified_reps' do
    subject { view.modified_reps }

    it_behaves_like 'a method that returns modified reps only'
    it_behaves_like 'a method that returns PostCompileItemRepViews'
  end

  describe '#modified' do
    subject { view.modified }

    it_behaves_like 'a method that returns modified reps only'
    it_behaves_like 'a method that returns PostCompileItemRepViews'
  end

  describe '#reps' do
    subject { view.reps }

    it_behaves_like 'a method that returns PostCompileItemRepViews'

    it 'returns a PostCompileItemRepCollectionView' do
      expect(subject).to be_a(Nanoc::PostCompileItemRepCollectionView)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
nanoc-4.7.5 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.7.4 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.7.3 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.7.2 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.7.1 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.7.0 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.6.4 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.6.3 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.6.2 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.6.1 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.6.0 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.5.4 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.5.3 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.5.2 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.5.1 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.5.0 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.4.7 spec/nanoc/base/views/post_compile_item_view_spec.rb
nanoc-4.4.6 spec/nanoc/base/views/post_compile_item_view_spec.rb