spec/hi/server_spec.rb in hi-1.1.1 vs spec/hi/server_spec.rb in hi-1.2.0

- old
+ new

@@ -1,44 +1,27 @@ require 'spec_helper' +require 'hi/app' require 'hi/server' -require 'rack/test' -ENV['RACK_ENV'] = 'test' - describe Hi::Server do - include Rack::Test::Methods + let(:app) { Hi::App.new } + let(:server) { described_class.new(app) } - def app - described_class.new - end + describe '#start' do + it 'starts up the app' do + server.should_receive(:start!).with app.port - [:get, :put, :post].each do |method| - it "responds to #{method.to_s.upcase}" do - send(method, '/') - - expect(last_response).to be_ok - expect(last_response.body).to eq('hi') + server.start end - end - it 'responds to any route' do - get '/some/random/route' + it 'tries to start again on a different port requested port is in use' do + server + .should_receive(:start!) + .exactly(Hi::Server::MAX_ATTEMPTS).times + .and_raise RuntimeError - expect(last_response).to be_ok - expect(last_response.body).to eq('hi') - end - - it 'defaults to port 3000' do - expect(app.port).to eq(3000) - end - - it 'allows a customized port' do - expect(described_class.new(1234).port).to eq(1234) - expect(described_class.new('1234').port).to eq(1234) - end - - it 'uses default port when customized port is invalid' do - expect(described_class.new(nil).port).to eq(3000) - expect(described_class.new('nope').port).to eq(3000) - expect(described_class.new(-100).port).to eq(3000) + expect { + server.start + }.to raise_error Hi::Server::CantStartServerError + end end end