Sha256: fe87a1154fe6c5e877c8753ca0afccfab389c160560ba6c01ce15ddcfe772208

Contents?: true

Size: 1.93 KB

Versions: 1

Compression:

Stored size: 1.93 KB

Contents

require 'spec_helper'

describe Rack::Alive do

  describe "VERSION" do
    it 'should be defined' do
      defined?(::Rack::Alive::VERSION)
    end

    it 'should be a valid version string (e.g. "0.0.1", or "0.0.1.rc1")' do
      valid_version_string = /^\d+\.\d+\.\d+/
      Rack::Alive::VERSION.must_match valid_version_string
    end
  end

  describe "Middleware" do
    before do
      @app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, [""]] }
    end

    describe "Minimal setup: No custom conditions" do
      it 'should be alive' do
        request = Rack::MockRequest.env_for("/alive?")
        response = Rack::Alive.new(@app).call(request)
        status(response).must_equal 200
        body(response).must_equal ["true"]
      end
    end

    describe "Advanced setup: Using custom alive? conditions" do
      it 'should not be alive if block conditions are false' do
        request = Rack::MockRequest.env_for("/alive?")
        response = Rack::Alive.new(@app, proc {
          false
        }).call(request)
        status(response).must_equal 500
        body(response).must_equal ["false"]
      end

      it 'should not be alive if block conditions raise error' do
        request = Rack::MockRequest.env_for("/alive?")
        response = Rack::Alive.new(@app, proc {
          raise "SHIT - WHERE ARE ALL THE HORSES???!!! *drama-queen scream*"
        }).call(request)
        status(response).must_equal 500
        body(response).must_equal ["false"]
      end

      it 'should be alive if block conditions are true' do
        request = Rack::MockRequest.env_for("/alive?")
        response = Rack::Alive.new(@app, proc {
          true
        }).call(request)
        status(response).must_equal 200
        body(response).must_equal ["true"]
      end
    end
  end

  private

    def status(response)
      response[0]
    end

    def headers(response)
      response[1]
    end

    def body(response)
      response[2]
    end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-alive-0.0.2 spec/rack-alive_spec.rb