Sha256: d656fa84238d83bb977f4566ec258f4526a0e1e083ce57f708ec0a17e92b8306

Contents?: true

Size: 1.65 KB

Versions: 4

Compression:

Stored size: 1.65 KB

Contents

require 'test/spec'
require 'sinatra/base'
require 'sinatra/test'

describe 'Result Handling' do
  include Sinatra::Test

  it "sets response.body when result is a String" do
    mock_app {
      get '/' do
        'Hello World'
      end
    }

    get '/'
    should.be.ok
    body.should.equal 'Hello World'
  end

  it "sets response.body when result is an Array of Strings" do
    mock_app {
      get '/' do
        ['Hello', 'World']
      end
    }

    get '/'
    should.be.ok
    body.should.equal 'HelloWorld'
  end

  it "sets response.body when result responds to #each" do
    mock_app {
      get '/' do
        res = lambda { 'Hello World' }
        def res.each ; yield call ; end
        res
      end
    }

    get '/'
    should.be.ok
    body.should.equal 'Hello World'
  end

  it "sets response.body to [] when result is nil" do
    mock_app {
      get '/' do
        nil
      end
    }

    get '/'
    should.be.ok
    body.should.equal ''
  end

  it "sets status, headers, and body when result is a Rack response tuple" do
    mock_app {
      get '/' do
        [205, {'Content-Type' => 'foo/bar'}, 'Hello World']
      end
    }

    get '/'
    status.should.equal 205
    response['Content-Type'].should.equal 'foo/bar'
    body.should.equal 'Hello World'
  end

  it "sets status and body when result is a two-tuple" do
    mock_app {
      get '/' do
        [409, 'formula of']
      end
    }

    get '/'
    status.should.equal 409
    body.should.equal 'formula of'
  end

  it "sets status when result is a Fixnum status code" do
    mock_app {
      get('/') { 205 }
    }

    get '/'
    status.should.equal 205
    body.should.be.empty
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
adamwiggins-sinatra-0.8.9 test/result_test.rb
bmizerany-sinatra-0.9.0 test/result_test.rb
rtomayko-sinatra-0.8.9 test/result_test.rb
rtomayko-sinatra-0.9.0 test/result_test.rb