require 'spec_helper' describe 'routing' do describe 'default routes' do before(:all) do RailsPages.configure { |c| c.default_routes = true } Rails.application.reload_routes! end after(:all) { Rails.application.reload_routes! } it 'generates resource route' do expect(page_path 'page').to eq('/pages/page') end it 'generates nested resource route' do expect(page_path 'nested/page').to eq('/pages/nested/page') end it 'recognizes route' do expect(:get => '/pages/page').to be_routable end it 'recognizes nested route' do expect(:get => '/pages/nested/page').to be_routable end end describe 'default routes disabled' do before(:all) do RailsPages.configure { |c| c.default_routes = false } Rails.application.reload_routes! end after(:all) { Rails.application.reload_routes! } it 'does not generate resource route' do expect { page_path 'page' }.to raise_error(NameError) end it 'does not generate nested resource route' do expect { page_path 'pages/page' }.to raise_error(NameError) end it 'does not recognize route' do expect(:get => '/pages/page').not_to be_routable end it 'does not recognize nested route' do expect(:get => '/pages/nested/page').not_to be_routable end end describe 'root routes' do before(:all) do Rails.application.routes.draw do get '/:id' => 'rails_pages/pages#show', :as => :page, :format => false, :constraints => { :id => /.+?/ } end end after(:all) { Rails.application.reload_routes! } it 'generates resource route' do expect(page_path 'page').to eq('/page') end it 'generates nested resource route' do expect(page_path 'nested/page').to eq('/nested/page') end it 'recognizes route' do expect(:get => '/page').to be_routable end it 'recognizes nested route' do expect(:get => '/nested/page').to be_routable end end end