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