Sha256: 63304e8339a2201270a31c88131c97f664331542e289b18dce737251a1bfc77a

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

require_relative '../spec_helper'

describe Kanpachi::DSL::Section do
  before do
    Kanpachi::APIList.clear
  end

  subject do
    Kanpachi::DSL::Section.new(users_section, api_dsl)
  end

  let(:api_dsl) do
    Kanpachi::DSL::API.new(my_api)
  end

  let(:my_api) do
    extend Kanpachi::DSL
    api 'MyApp' do
      title 'My App'
    end
  end

  let(:users_section) do
    Kanpachi::Section.new('Users')
  end

  it 'sets the description' do
    subject.description 'Just for testing'
    users_section.description.must_equal 'Just for testing'
  end

  it 'adds a new resource to the resource list' do
    resource = subject.resource :get, '/posts'
    route = [resource.http_verb, resource.url]
    users_section.routes.must_include route
    my_api.resources.find(*route).must_equal resource
  end

  it 'raises a Kanpachi::ResourceList::DuplicateResource if resource route already exists' do
    subject.resource :get, '/users'
    proc do
      subject.resource :get, '/users' do
        response do
          status 400
        end
      end
    end.must_raise Kanpachi::ResourceList::DuplicateResource
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kanpachi-0.0.7 spec/dsl/section_spec.rb
kanpachi-0.0.6 spec/dsl/section_spec.rb
kanpachi-0.0.5 spec/dsl/section_spec.rb
kanpachi-0.0.4 spec/dsl/section_spec.rb
kanpachi-0.0.3 spec/dsl/section_spec.rb
kanpachi-0.0.2 spec/dsl/section_spec.rb
kanpachi-0.0.1 spec/dsl/section_spec.rb