Welcome to mirror list, hosted at ThFree Co, Russian Federation.

redirects_for_missing_path_on_tree_spec.rb « concerns « controllers « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5c3b6e13ee31dfb8b8ed1a6d47c96a29c17feec1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe RedirectsForMissingPathOnTree, type: :controller do
  controller(ActionController::Base) do
    include Gitlab::Routing.url_helpers
    include RedirectsForMissingPathOnTree

    def fake
      redirect_to_tree_root_for_missing_path(Project.find(params[:project_id]), params[:ref], params[:file_path])
    end
  end

  let(:project) { create(:project) }

  before do
    routes.draw { get 'fake' => 'anonymous#fake' }
  end

  describe '#redirect_to_root_path' do
    it 'redirects to the tree path with a notice' do
      long_file_path = ('a/b/' * 30) + 'foo.txt'
      truncated_file_path = '...b/' + ('a/b/' * 12) + 'foo.txt'
      expected_message = "\"#{truncated_file_path}\" did not exist on \"theref\""

      get :fake, params: { project_id: project.id, ref: 'theref', file_path: long_file_path }

      expect(response).to redirect_to project_tree_path(project, 'theref')
      expect(response.flash[:notice]).to eq(expected_message)
    end
  end
end