47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require 'spec_helper'
 | |
| 
 | |
| RSpec.describe Gitlab::Routing do
 | |
|   context 'when module is included' do
 | |
|     subject do
 | |
|       Class.new.include(described_class).new
 | |
|     end
 | |
| 
 | |
|     it 'makes it possible to access url helpers' do
 | |
|       expect(subject).to respond_to(:namespace_project_path)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   context 'when module is not included' do
 | |
|     subject do
 | |
|       Class.new.include(described_class.url_helpers).new
 | |
|     end
 | |
| 
 | |
|     it 'exposes url helpers module through a method' do
 | |
|       expect(subject).to respond_to(:namespace_project_path)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe Gitlab::Routing::LegacyRedirector do
 | |
|     subject { described_class.new(:wikis) }
 | |
| 
 | |
|     let(:request) { double(:request, path: path, query_string: '') }
 | |
|     let(:path) { '/gitlab-org/gitlab-test/wikis/home' }
 | |
| 
 | |
|     it 'returns "-" scoped url' do
 | |
|       expect(subject.call({}, request)).to eq('/gitlab-org/gitlab-test/-/wikis/home')
 | |
|     end
 | |
| 
 | |
|     context 'invalid uri characters' do
 | |
|       let(:path) { '/gitlab-org/gitlab-test/wikis/home[' }
 | |
| 
 | |
|       it 'raises error' do
 | |
|         expect do
 | |
|           subject.call({}, request)
 | |
|         end.to raise_error(ActionController::RoutingError)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |