Sha256: 546ff31e37b3ff9335cbff56372aa3c878b09ffe142fe5bfcb05d36ed0546c93

Contents?: true

Size: 1.38 KB

Versions: 23

Compression:

Stored size: 1.38 KB

Contents

# encoding: utf-8

require_relative "../spec_helper"

require "rango/mini"
require "rack/mock"
require "rack/lint"

Rango::Router.use(:urlmap)

describe Rango::Mini do
  before(:each) do
    @app = Rango::Mini.app { "Hello Rack!" }
    @env = Rack::MockRequest.env_for("/")
  end

  it "should work standalone" do
    Rango::Mini.should respond_to(:app)
  end

  it "should work as a mixin" do
    controller = Class.new { include Rango::Mini }
    controller.new.should respond_to(:app)
  end

  it "should raise ArgumentError if no block given" do
    -> { Rango::Mini.app }.should raise_error(ArgumentError)
  end

  it "should be able to return valid rack application" do
    lint = Rack::Lint.new(@app)
    -> { lint.call(@env) }.should_not raise_error
  end

  it "should provide request as the first argument for given block" do
    Rango::Mini.app do |request, response|
      request.should be_kind_of(Rango::Request)
    end
  end

  it "should provide response as the second argument for given block" do
    Rango::Mini.app do |request, response|
      response.should be_kind_of(Rack::Response)
    end
  end

  it "should take returned value as a body" do
    status, headers, body = @app.call(@env)
    body.should eql("Hello Rack!")
  end

  describe "defaults" do
    it "should set status to HTTP 200 OK" do
      status, headers, body = @app.call(@env)
      status.should eql(200)
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
rango-0.2.6 spec/rango/mini_spec.rb
rango-0.2.5.1 spec/rango/mini_spec.rb
rango-0.2.4.1 spec/rango/mini_spec.rb
rango-0.2.3 spec/rango/mini_spec.rb
rango-0.2.1 spec/rango/mini_spec.rb
rango-0.2.1.pre spec/rango/mini_spec.rb
rango-0.2 spec/rango/mini_spec.rb
rango-0.1.1.3 spec/rango/mini_spec.rb
rango-0.1.1.2.11 spec/rango/mini_spec.rb
rango-0.1.1.2.10 spec/rango/mini_spec.rb
rango-0.1.1.2.9 spec/rango/mini_spec.rb
rango-0.1.1.2.8 spec/rango/mini_spec.rb
rango-0.1.1.2.7 spec/rango/mini_spec.rb
rango-0.1.1.2.6 spec/rango/mini_spec.rb
rango-0.1.1.2.5 spec/rango/mini_spec.rb
rango-0.1.1.2.4 spec/rango/mini_spec.rb
rango-0.1.1.2.3 spec/rango/mini_spec.rb
rango-0.1.1.2.2 spec/rango/mini_spec.rb
rango-0.1.1.2.1 spec/rango/mini_spec.rb
rango-0.2.pre spec/rango/mini_spec.rb