diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/unit/renderer/read_template_path_spec.rb | 42 | ||||
-rw-r--r-- | spec/unit/renderer/template_path.rb | 8 | ||||
-rw-r--r-- | spec/unit/renderer/transform_spec.rb | 32 | ||||
-rw-r--r-- | spec/unit/renderer/type_map_spec.rb | 13 |
4 files changed, 56 insertions, 39 deletions
diff --git a/spec/unit/renderer/read_template_path_spec.rb b/spec/unit/renderer/read_template_path_spec.rb new file mode 100644 index 0000000..8522007 --- /dev/null +++ b/spec/unit/renderer/read_template_path_spec.rb @@ -0,0 +1,42 @@ +require 'spec_helper' + +describe Zero::Renderer, 'read_template_path!' do + subject { Zero::Renderer.new(template_path, type_map) } + let(:template_path) { 'foo' } + let(:file_list) { ['./foo/welcome/index.html.erb'] } + + before :each do + subject.stub(:search_files).and_return(file_list) + end + + shared_examples_for 'a template loader' do + it 'creates a template tree' do + subject.read_template_path! + subject.templates['welcome/index'].should eq(result) + end + end + + context 'without mapping' do + let(:type_map) { {} } + let(:result) { { 'html' => './foo/welcome/index.html.erb' } } + + it_behaves_like 'a template loader' + end + + context 'with a single mapping' do + let(:type_map) { {'html' => 'text/html' } } + let(:result) { { 'text/html' => './foo/welcome/index.html.erb' } } + + it_behaves_like 'a template loader' + end + + context 'with multiple mappings' do + let(:type_map) { {'html' => ['text/html', 'text/xml'] } } + let(:result) { { + 'text/html' => './foo/welcome/index.html.erb', + 'text/xml' => './foo/welcome/index.html.erb' + } } + + it_behaves_like 'a template loader' + end +end diff --git a/spec/unit/renderer/template_path.rb b/spec/unit/renderer/template_path.rb new file mode 100644 index 0000000..261faa8 --- /dev/null +++ b/spec/unit/renderer/template_path.rb @@ -0,0 +1,8 @@ +require 'spec_helper' + +describe Zero::Renderer, '#template_path' do + subject { Zero::Renderer.new(template_path) } + let(:template_path) { 'foo' } + + its(:type_map) { should be(template_path) } +end diff --git a/spec/unit/renderer/transform_spec.rb b/spec/unit/renderer/transform_spec.rb deleted file mode 100644 index fce6730..0000000 --- a/spec/unit/renderer/transform_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'spec_helper' - -describe Zero::Renderer, '.transform' do - subject { Zero::Renderer } - let(:map) {{ 'text/html' => 'html' }} - - shared_examples_for 'a transformer' do - before :each do - Zero::Renderer.type_map = map - end - - after :each do - Zero::Renderer.type_map = {} - end - - it "transforms a string" do - subject.transform(original).should eq(result) - end - end - - context "with a shortable type" do - let(:original) { 'text/html' } - let(:result) { 'html' } - it_behaves_like 'a transformer' - end - - context "with an unshortable type" do - let(:original) { 'application/json' } - let(:result) { 'application/json' } - it_behaves_like 'a transformer' - end -end diff --git a/spec/unit/renderer/type_map_spec.rb b/spec/unit/renderer/type_map_spec.rb index f9839e7..f0b86ad 100644 --- a/spec/unit/renderer/type_map_spec.rb +++ b/spec/unit/renderer/type_map_spec.rb @@ -1,10 +1,9 @@ require 'spec_helper' -describe Zero::Renderer, '.type_map' do - subject { Zero::Renderer } - let(:mapping) {{ 'test/foo' => 'foo' }} - it "saves the map" do - subject.type_map = mapping - subject.type_map.should be(mapping) - end +describe Zero::Renderer, '#type_map' do + subject { Zero::Renderer.new(template_path, type_map) } + let(:template_path) { 'foo' } + let(:type_map) { {'html' => ['text/html']} } + + its(:type_map) { should be(type_map) } end |