Sha256: 899849bb7d6ab8bfcd39a2459e874c0987a93da00930c452e1ea84b37dd6de72
Contents?: true
Size: 1.77 KB
Versions: 2
Compression:
Stored size: 1.77 KB
Contents
require 'spec_helper' describe ApplicationController, type: [:controller, :request] do context 'when context has constraints' do it "checks value via regexp" do expect(get: '/en').to route_to('application#index', lang: 'en') expect(get: '/ru/lang').to route_to('application#index', lang: 'ru') expect(get: '/de').not_to be_routable end end context 'when context has no constraints' do it 'allows any value' do expect(get: '/ru/moscow/city').to route_to('application#index', lang: 'ru', city: 'moscow') end end context 'when context is required' do it 'requires value' do expect(get: '/moscow/city').to route_to('application#index', city: 'moscow') end end context 'context locking' do it 'overrides current context' do get '/ru/lang' expect(controller).not_to be_context_locked(:lang) controller.lock_context(lang: :en) expect(controller).to be_context_locked(:lang) expect(controller.locked_context(:lang)).to eq(:en) expect(controller.locked_context).to eq('lang' => :en) end end describe '#contexts' do it 'returns contexts hash' do get '/en' expect(controller.contexts[:lang]).to be_a(LanguageContext) end end describe '#current_context' do it 'returns current context value' do get '/ru/lang' expect(controller.current_context(:lang)).to eq(:ru) expect(controller.current_context).to eq(lang: :ru) end end context 'url helpers' do it 'includes context' do get '/ru/moscow/city' expect(controller.city_page_path).to eq('/ru/moscow/city') end it 'allows to customize url option' do get '/ru/moscow/city' get '/en' expect(controller.lang_page_path).to eq('/lang') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
contexts-1.1.0 | spec/controllers/application_controller_spec.rb |
contexts-1.0.0 | spec/controllers/application_controller_spec.rb |