group_links_controller_spec.rb 1.39 KB
Newer Older
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
require 'spec_helper'

describe Projects::GroupLinksController do
  let(:project) { create(:project, :private) }
  let(:group) { create(:group, :private) }
  let(:user) { create(:user) }

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

  describe '#create' do
    shared_context 'link project to group' do
      before do
        post(:create, namespace_id: project.namespace.to_param,
                      project_id: project.to_param,
                      link_group_id: group.id,
                      link_group_access: ProjectGroupLink.default_access)
      end
    end

    context 'when user has access to group he want to link project to' do
      before { group.add_developer(user) }
      include_context 'link project to group'

      it 'links project with selected group' do
        expect(group.shared_projects).to include project
      end

31
      it 'redirects to project group links page' do
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
        expect(response).to redirect_to(
          namespace_project_group_links_path(project.namespace, project)
        )
      end
    end

    context 'when user doers not have access to group he want to link to' do
      include_context 'link project to group'

      it 'renders 404' do
        expect(response.status).to eq 404
      end

      it 'does not share project with that group' do
        expect(group.shared_projects).to_not include project
      end
    end
  end
end