diff options
Diffstat (limited to 'spec/controllers/projects/blame_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/blame_controller_spec.rb | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/spec/controllers/projects/blame_controller_spec.rb b/spec/controllers/projects/blame_controller_spec.rb index 62a544bb3fc..50556bdb652 100644 --- a/spec/controllers/projects/blame_controller_spec.rb +++ b/spec/controllers/projects/blame_controller_spec.rb @@ -2,9 +2,9 @@ require 'spec_helper' -RSpec.describe Projects::BlameController do - let(:project) { create(:project, :repository) } - let(:user) { create(:user) } +RSpec.describe Projects::BlameController, feature_category: :source_code_management do + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } before do sign_in(user) @@ -13,37 +13,55 @@ RSpec.describe Projects::BlameController do controller.instance_variable_set(:@project, project) end - describe "GET show" do - render_views - - before do - get(:show, - params: { - namespace_id: project.namespace, - project_id: project, - id: id - }) - end - - context "valid branch, valid file" do + shared_examples 'blame_response' do + context 'valid branch, valid file' do let(:id) { 'master/files/ruby/popen.rb' } it { is_expected.to respond_with(:success) } end - context "valid branch, invalid file" do + context 'valid branch, invalid file' do let(:id) { 'master/files/ruby/invalid-path.rb' } it 'redirects' do - expect(subject) - .to redirect_to("/#{project.full_path}/-/tree/master") + expect(subject).to redirect_to("/#{project.full_path}/-/tree/master") end end - context "invalid branch, valid file" do + context 'invalid branch, valid file' do let(:id) { 'invalid-branch/files/ruby/missing_file.rb' } it { is_expected.to respond_with(:not_found) } end end + + describe 'GET show' do + render_views + + before do + get :show, params: { namespace_id: project.namespace, project_id: project, id: id } + end + + it_behaves_like 'blame_response' + end + + describe 'GET page' do + render_views + + before do + get :page, params: { namespace_id: project.namespace, project_id: project, id: id } + end + + it_behaves_like 'blame_response' + end + + describe 'GET streaming' do + render_views + + before do + get :streaming, params: { namespace_id: project.namespace, project_id: project, id: id } + end + + it_behaves_like 'blame_response' + end end |