BigW Consortium Gitlab

commits_controller_spec.rb 1.31 KB
Newer Older
1 2
require 'spec_helper'

3
describe Projects::CommitsController do
4
  let(:project) { create(:project) }
5
  let(:user) { create(:user) }
6 7 8

  before do
    sign_in(user)
9
    project.team << [user, :master]
10 11 12
  end

  describe "GET show" do
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
    context "when the ref name ends in .atom" do
      render_views

      context "when the ref does not exist with the suffix" do
        it "renders as atom" do
          get(:show,
              namespace_id: project.namespace.to_param,
              project_id: project.to_param,
              id: "master.atom")

          expect(response).to be_success
          expect(response.content_type).to eq('application/atom+xml')
        end
      end

      context "when the ref exists with the suffix" do
        before do
          commit = project.repository.commit('master')

          allow_any_instance_of(Repository).to receive(:commit).and_call_original
          allow_any_instance_of(Repository).to receive(:commit).with('master.atom').and_return(commit)

          get(:show,
              namespace_id: project.namespace.to_param,
              project_id: project.to_param,
              id: "master.atom")
        end

        it "renders as HTML" do
          expect(response).to be_success
          expect(response.content_type).to eq('text/html')
        end
45 46 47 48
      end
    end
  end
end