Sha256: c424539e02b23b5d5615ef6134df160f321802a87cbfae72609d23375b1fae72

Contents?: true

Size: 1.91 KB

Versions: 3

Compression:

Stored size: 1.91 KB

Contents

# encoding: utf-8

require_relative "../spec_helper"
require "rango/exceptions"

describe Rango::Exceptions do
  before(:each) do
    @error = Rango::Exceptions::NotFound.new("Post with given ID doesn't exist")
  end

  describe "constants" do
    it "should has CONTENT_TYPE" do
      Rango::Exceptions::HttpError.constants.should include(:CONTENT_TYPE)
    end

    it "should xxxxxxxxx" do
      @class  = Class.new(Rango::Exceptions::HttpError)
      -> { @class::STATUS }.should raise_error(NameError, /has to have defined constant STATUS/)
    end
  end

  describe "#status" do
    it "should returns HTTP status status" do
      @error.status.should eql(404)
    end
  end

  describe "#content_type" do
    it "should returns HTTP status status" do
      @error.content_type.should eql(@error.class::CONTENT_TYPE)
    end

    it "should returns HTTP status status" do
      @error.content_type = "text/xml"
      @error.content_type.should eql("text/xml")
    end
  end

  describe "#headers" do
    it "should returns HTTP status status" do
      @error.headers.should be_kind_of(Hash)
    end

    it "should returns HTTP status status" do
      @error.headers = "text/xml"
      @error.headers.should eql("text/xml")
    end
  end

  describe "#to_snakecase" do
    it "should returns snakecased name of class" do
      @error.to_snakecase.should eql("not_found")
    end
  end

  describe "#to_response" do
    before(:each) do
      @status, @headers, @body = @error.to_response
    end

    it "should returns standard response array for Rack" do
      @status.should eql(@error.status)
    end

    it "should returns standard response array for Rack" do
      @headers.should be_kind_of(Hash)
    end

    it "should write Content-Type header" do
      @headers["Content-Type"].should eql @error.content_type
    end

    it "should returns standard response array for Rack" do
      @body.should respond_to(:each)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rango-0.2.3 spec/rango/exceptions_spec.rb
rango-0.2.1 spec/rango/exceptions_spec.rb
rango-0.2.1.pre spec/rango/exceptions_spec.rb