aboutsummaryrefslogtreecommitdiff
path: root/spec/unit/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/renderer')
-rw-r--r--spec/unit/renderer/read_template_path_spec.rb42
-rw-r--r--spec/unit/renderer/template_path.rb8
-rw-r--r--spec/unit/renderer/transform_spec.rb32
-rw-r--r--spec/unit/renderer/type_map_spec.rb13
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