diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/spec_helper.rb | 9 | ||||
-rw-r--r-- | spec/unit/zero/controller/call_spec.rb | 12 | ||||
-rw-r--r-- | spec/unit/zero/controller/render_spec.rb | 11 | ||||
-rw-r--r-- | spec/unit/zero/controller/renderer_spec.rb | 8 |
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 |