spec/command/rebind_spec.rb in retter-0.2.0 vs spec/command/rebind_spec.rb in retter-0.2.1

- old
+ new

@@ -4,12 +4,12 @@ describe 'Retter::Command#rebind', clean: :all do context 'first post' do let(:date_str) { '20110101' } let(:date) { Date.parse(date_str) } - let(:date_file) { retter_config.retter_file(date) } - let(:date_html) { retter_config.entry_file(date) } + let(:date_file) { Retter.entries.retter_file(date) } + let(:date_html) { Retter::Pages.entry_file(date) } let(:article) { <<-EOM } # 朝11時 おはようございます @@ -33,34 +33,34 @@ wip_file.should_not be_exist end end describe 'index.html' do - let(:index_html) { retter_config.index_file.read } + let(:index_html) { Retter.config.retter_home.join('index.html').read } it { texts_of(index_html, 'article p').should include('おはようございます') } it { texts_of(index_html, 'article h1.date').should == %w(2011-01-01) } it { texts_of(index_html, 'article h1').should == %w(2011-01-01 朝11時 夜1時) } end describe 'entries.html' do - let(:entries_html) { retter_config.entries_file.read } + let(:entries_html) { Retter.config.retter_home.join('entries.html').read } it { texts_of(entries_html, 'a.entry').first.should == '2011-01-01' } it { texts_of(entries_html, 'a.title').should == %w(朝11時 夜1時) } end describe 'entry.html' do - let(:entry_html) { retter_config.entry_file(date).read } + let(:entry_html) { Retter::Pages.entry_file(date).read } it { texts_of(entry_html, 'article p').should == %w(おはようございます おやすみなさい) } it { texts_of(entry_html, 'article h1.date').should == %w(2011-01-01) } it { texts_of(entry_html, 'article h1').should == %w(2011-01-01 朝11時 夜1時) } end describe 'entry part(first)' do - let(:part_html) { retter_config.entry_dir(date).join('a0.html').read } + let(:part_html) { Retter::Pages.entry_dir(date).join('a0.html').read } describe 'body' do subject { texts_of(part_html, 'article p') } it { should include('おはようございます') } @@ -80,11 +80,11 @@ it { should_not include('夜1時') } end end describe 'entry part(last)' do - let(:part_html) { retter_config.entry_dir(date).join('a1.html').read } + let(:part_html) { Retter::Pages.entry_dir(date).join('a1.html').read } describe 'body' do subject { texts_of(part_html, 'article p') } it { should include('おやすみなさい') } @@ -105,11 +105,11 @@ end end end context 'includes code block' do - let(:index_html) { retter_config.index_file.read } + let(:index_html) { Retter.config.retter_home.join('index.html').read } let(:article) { <<-EOM } # コードを書きました ```ruby sleep 1000 @@ -120,22 +120,22 @@ wip_file.open('w') {|f| f.puts article } end context 'use Pygments' do before do - retter_config.stub!(:renderer).and_return(Retter::Renderers::PygmentsRenderer) + Retter.config.renderer Retter::Renderers::PygmentsRenderer command.rebind end specify 'code should be highlighted' do nokogiri(index_html).search('.highlight').should_not be_empty end end context 'use CodeRay' do before do - retter_config.stub!(:renderer).and_return(Retter::Renderers::CodeRayRenderer) + Retter.config.renderer Retter::Renderers::CodeRayRenderer command.rebind end specify 'code should be highlighted' do nokogiri(index_html).search('.code').should_not be_empty @@ -152,8 +152,48 @@ specify 'rebind callback should not invoked' do command.should_not_receive(:invoke_after) command.rebind + end + end + + context 'skipping some singleton pages binding' do + let(:retter_home) { Retter.config.retter_home } + let(:index_html) { retter_home.join('index.html') } + let(:profile_html) { retter_home.join('profile.html') } + let(:entries_html) { retter_home.join('entries.html') } + let(:feed_file) { retter_home.join('feed.rss') } + + before do + index_html.unlink + + command.edit + end + + context 'skipping all' do + before do + Retter::Pages.allow_binding :none + + command.rebind + end + + it { profile_html.should_not be_exist } + it { entries_html.should_not be_exist } + it { feed_file.should_not be_exist } + it { index_html.should be_exist } + end + + context 'skipping only :feed' do + before do + Retter::Pages.allow_binding [:profile, :entries] + + command.rebind + end + + it { profile_html.should be_exist } + it { entries_html.should be_exist } + it { feed_file.should_not be_exist } + it { index_html.should be_exist } end end end