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