diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-12-11 09:53:43 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-12-11 09:53:43 +0000 |
commit | 51300f7657d7a48e2338a475a172122cb257b5d9 (patch) | |
tree | a78a31bd6031b63f3385837a9cdafa77bbe93b5e /spec | |
parent | 85f430cb3cde4ff8c4d24c1b2a426670e38dd44f (diff) | |
parent | 4f5abe43279e96efde5f8cac66cbff30d8a95f28 (diff) | |
download | gitlab-ce-51300f7657d7a48e2338a475a172122cb257b5d9.tar.gz |
Merge branch 'fix-n-plus-1-queries-projects' into 'master'
Fix some N+1 queries related to Admin Dashboard, User Dashboards and Activity Stream
Closes #55106
See merge request gitlab-org/gitlab-ce!23034
Diffstat (limited to 'spec')
-rw-r--r-- | spec/helpers/events_helper_spec.rb | 32 | ||||
-rw-r--r-- | spec/helpers/projects_helper_spec.rb | 12 |
2 files changed, 44 insertions, 0 deletions
diff --git a/spec/helpers/events_helper_spec.rb b/spec/helpers/events_helper_spec.rb index 8d0679e5699..3d15306d4d2 100644 --- a/spec/helpers/events_helper_spec.rb +++ b/spec/helpers/events_helper_spec.rb @@ -84,4 +84,36 @@ describe EventsHelper do expect(helper.event_feed_url(event)).to eq(push_event_feed_url(event)) end end + + describe '#event_note_target_url' do + let(:project) { create(:project, :public, :repository) } + let(:event) { create(:event, project: project) } + let(:project_base_url) { namespace_project_url(namespace_id: project.namespace, id: project) } + + subject { helper.event_note_target_url(event) } + + it 'returns a commit note url' do + event.target = create(:note_on_commit, note: '+1 from me') + + expect(subject).to eq("#{project_base_url}/commit/#{event.target.commit_id}#note_#{event.target.id}") + end + + it 'returns a project snippet note url' do + event.target = create(:note, :on_snippet, note: 'keep going') + + expect(subject).to eq("#{project_base_url}/snippets/#{event.note_target.id}#note_#{event.target.id}") + end + + it 'returns a project issue url' do + event.target = create(:note_on_issue, note: 'nice work') + + expect(subject).to eq("#{project_base_url}/issues/#{event.note_target.iid}#note_#{event.target.id}") + end + + it 'returns a merge request url' do + event.target = create(:note_on_merge_request, note: 'LGTM!') + + expect(subject).to eq("#{project_base_url}/merge_requests/#{event.note_target.iid}#note_#{event.target.id}") + end + end end diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index a857b7646b2..486416c3370 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -229,6 +229,18 @@ describe ProjectsHelper do end end + describe '#link_to_project' do + let(:group) { create(:group, name: 'group name with space') } + let(:project) { create(:project, group: group, name: 'project name with space') } + subject { link_to_project(project) } + + it 'returns an HTML link to the project' do + expect(subject).to match(%r{/#{group.full_path}/#{project.path}}) + expect(subject).to include('group name with space /') + expect(subject).to include('project name with space') + end + end + describe '#link_to_member_avatar' do let(:user) { build_stubbed(:user) } let(:expected) { double } |