Sha256: b6b1e2c77befbbec07a4d367006b7a54a6075a960f4df70d9294b4dbfc08359b

Contents?: true

Size: 1.77 KB

Versions: 1

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper'

describe Lookout::Rack::Utils::Subroute, :type => :route do
  describe '#subroute' do
    let(:route) { '/test_route' }
    let(:original) { get route }

    subject(:subrouted) { get "/subrouted" }

    before :each do
      class RouteHelpers::Server
        include Lookout::Rack::Utils::Subroute
        get '/subrouted' do
          subroute!('/test_route')
        end

        get '/subrouted/:id' do |id|
          subroute!('/test_route', :id => id)
        end
      end
    end

    context "without params" do
      it 'should return the status code and body of the route' do
        expect([subrouted.status, subrouted.body]).to eql [original.status, original.body]
      end
    end

    context "with params" do
      let(:id) { 1 }
      let(:body) { { :key => 'value', :id => "#{id}" }.to_json }

      subject(:subrouted) { get "/subrouted/#{id}?key=value" }

      it 'should return expected value' do
        expect([subrouted.status, subrouted.body]).to eql [200, body]
      end
    end
  end

  describe '#succeeded?' do
    subject { SubrouteTestHelper.new.succeeded?(status) }
    context 'with status 200' do
      let(:status) { 200 }
      it { should be_true }
    end

    context 'with status 299' do
      let(:status) { 299 }
      it { should be_true }
    end

    context 'with a non-20x status' do
      let(:status) { 300 }
      it { should be_false }
    end
  end

  describe '#failed?' do
    subject { SubrouteTestHelper.new.failed?(status) }
    context 'with status 200' do
      let(:status) { 200 }
      it { should be_false }
    end

    context 'with status 299' do
      let(:status) { 299 }
      it { should be_false }
    end

    context 'with a non-20x status' do
      let(:status) { 300 }
      it { should be_true }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lookout-rack-utils-1.5.0 spec/subroute_spec.rb