aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/spec_helper.rb9
-rw-r--r--spec/unit/zero/controller/call_spec.rb12
-rw-r--r--spec/unit/zero/controller/render_spec.rb11
-rw-r--r--spec/unit/zero/controller/renderer_spec.rb8
4 files changed, 29 insertions, 11 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 1b0dd61..5711e6c 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -19,9 +19,12 @@ class SpecTemplateContext
end
end
-class SpecController < Zero::Controller
- def process; end
- def render; @response = [200, {'Content-Type' => 'text/html'}, ['foo']]; end
+def create_controller
+ Class.new(Zero::Controller) do
+ def process
+ @response.body = 'correct'
+ end
+ end
end
class SpecApp
diff --git a/spec/unit/zero/controller/call_spec.rb b/spec/unit/zero/controller/call_spec.rb
index 6cc56a4..44a8f0a 100644
--- a/spec/unit/zero/controller/call_spec.rb
+++ b/spec/unit/zero/controller/call_spec.rb
@@ -1,12 +1,14 @@
require 'spec_helper'
describe Zero::Controller, '.call' do
- subject { controller.call(env) }
- let(:controller) { SpecController }
+ let(:object) { create_controller }
+ subject { object.call(env) }
let(:env) { EnvGenerator.get('/foo') }
before :each do
- controller.renderer = Object.new
+ object.renderer = Object.new
+ object.response = Zero::Response
+ object.request = Zero::Request
end
it "returns a response" do
@@ -28,8 +30,8 @@ describe Zero::Controller, '.call' do
context "with the response" do
let(:response_class) { mock }
before :each do
- Zero::Controller.response = response_class
- response_class.should_receive(:new)
+ object.response = response_class
+ response_class.should_receive(:new).and_return(Zero::Response.new)
end
after :each do
diff --git a/spec/unit/zero/controller/render_spec.rb b/spec/unit/zero/controller/render_spec.rb
index 771db28..0d807cc 100644
--- a/spec/unit/zero/controller/render_spec.rb
+++ b/spec/unit/zero/controller/render_spec.rb
@@ -1,13 +1,20 @@
require 'spec_helper'
describe Zero::Controller, '#render' do
- subject { Zero::Controller.new(env) }
+ let(:object) { create_controller }
+ subject { object.new(env) }
+
+ before do
+ object.request = Zero::Request
+ object.response = Zero::Response
+ end
+
let(:env) { EnvGenerator.get('/foo') }
let(:renderer) { mock }
let(:template) { '/foo' }
before :each do
- Zero::Controller.renderer = renderer
+ object.renderer = renderer
renderer.should_receive(:render).with(template,
kind_of(Zero::Request::AcceptType), subject)
end
diff --git a/spec/unit/zero/controller/renderer_spec.rb b/spec/unit/zero/controller/renderer_spec.rb
index 21664ec..35e0475 100644
--- a/spec/unit/zero/controller/renderer_spec.rb
+++ b/spec/unit/zero/controller/renderer_spec.rb
@@ -1,11 +1,17 @@
require 'spec_helper'
describe Zero::Controller, '#renderer' do
- subject { Zero::Controller }
+ subject { create_controller }
let(:renderer) { Object.new }
+ before do
+ subject.response = Zero::Response
+ subject.request = Zero::Request
+ end
+
it 'returns the set renderer' do
subject.renderer = renderer
+ p subject.renderer
expect(subject.new({}).renderer).to be(renderer)
end
end