Sha256: 2f964f05ed174aef8db88148032e1f217e43c3e52e94ef24be0ae2e904db342b

Contents?: true

Size: 1.67 KB

Versions: 2

Compression:

Stored size: 1.67 KB

Contents

require "spec_helper"

describe Rack::API::Runner do
  specify "sanity check for delegate methods" do
    # remember to update spec/method_delegation_spec.rb
    Rack::API::Runner::DELEGATE_METHODS.size.should == 13
  end

  it "responds to http methods" do
    subject.should respond_to(:get)
    subject.should respond_to(:post)
    subject.should respond_to(:put)
    subject.should respond_to(:delete)
    subject.should respond_to(:head)
  end

  it "sets available formats" do
    subject.respond_to(:json, :jsonp, :atom)
    subject.option(:formats).should == [:json, :jsonp, :atom]
  end

  it "sets prefix option" do
    subject.prefix("my/awesome/api")
    subject.option(:prefix).should == "my/awesome/api"
  end

  it "stores default url options" do
    subject.default_url_options(:host => "example.com")
    subject.option(:url_options).should == {:host => "example.com"}
  end

  it "stores middleware" do
    subject.use Rack::Auth::Basic
    subject.option(:middlewares, :merge).should == [[Rack::Auth::Basic]]
  end

  it "stores basic auth info" do
    handler = proc {}

    subject.basic_auth("Get out!", &handler)
    subject.settings[:global][:auth].should == ["Get out!", handler]
  end

  it "initializes application with correct parameters" do
    expected = {
      :version => "v1",
      :url_options => {:host => "mysite.com"},
      :default_format => "fffuuu",
      :prefix => "api",
      :handler => proc {}
    }

    Rack::API::Controller.should_receive(:new).with(hash_including(expected)).once
    subject.version("v1") do
      respond_to :fffuuu
      prefix "api"
      default_url_options :host => "mysite.com"

      get("/", &expected[:handler])
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-api-1.0.2 spec/rack-api/runner_spec.rb
rack-api-1.0.1 spec/rack-api/runner_spec.rb