Merge branch 'ce-issue_7526' into 'master'
[EE Backport] Add notes filters for epics See merge request gitlab-org/gitlab-ce!24372
This commit is contained in:
commit
fc67614164
|
@ -280,7 +280,7 @@ Additionally locked issues can not be reopened.
|
|||
For issues with many comments like activity notes and user comments, sometimes
|
||||
finding useful information can be hard. There is a way to filter comments from single notes and discussions for merge requests and issues.
|
||||
|
||||
From a merge request's **Discussion** tab, or from an issue overview, find the filter's dropdown menu on the right side of the page, from which you can choose one of the following options:
|
||||
From a merge request's **Discussion** tab, or from an epic/issue overview, find the filter's dropdown menu on the right side of the page, from which you can choose one of the following options:
|
||||
|
||||
- **Show all activity**: displays all user comments and system notes
|
||||
(issue updates, mentions from other issues, changes to the description, etc).
|
||||
|
|
|
@ -1118,6 +1118,7 @@ describe Projects::IssuesController do
|
|||
|
||||
context 'when user is setting notes filters' do
|
||||
let(:issuable) { issue }
|
||||
let(:issuable_parent) { project }
|
||||
let!(:discussion_note) { create(:discussion_note_on_issue, :system, noteable: issuable, project: project) }
|
||||
|
||||
it_behaves_like 'issuable notes filter'
|
||||
|
|
|
@ -78,6 +78,7 @@ describe Projects::MergeRequestsController do
|
|||
|
||||
context 'when user is setting notes filters' do
|
||||
let(:issuable) { merge_request }
|
||||
let(:issuable_parent) { project }
|
||||
let!(:discussion_note) { create(:discussion_note_on_merge_request, :system, noteable: issuable, project: project) }
|
||||
let!(:discussion_comment) { create(:discussion_note_on_merge_request, noteable: issuable, project: project) }
|
||||
|
||||
|
|
|
@ -1,8 +1,16 @@
|
|||
shared_examples 'issuable notes filter' do
|
||||
let(:params) do
|
||||
if issuable_parent.is_a?(Project)
|
||||
{ namespace_id: issuable_parent.namespace, project_id: issuable_parent, id: issuable.iid }
|
||||
else
|
||||
{ group_id: issuable_parent, id: issuable.to_param }
|
||||
end
|
||||
end
|
||||
|
||||
it 'sets discussion filter' do
|
||||
notes_filter = UserPreference::NOTES_FILTERS[:only_comments]
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid, notes_filter: notes_filter }
|
||||
get :discussions, params: params.merge(notes_filter: notes_filter)
|
||||
|
||||
expect(user.reload.notes_filter_for(issuable)).to eq(notes_filter)
|
||||
expect(UserPreference.count).to eq(1)
|
||||
|
@ -13,7 +21,7 @@ shared_examples 'issuable notes filter' do
|
|||
|
||||
expect_any_instance_of(issuable.class).to receive(:expire_note_etag_cache)
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid, notes_filter: notes_filter }
|
||||
get :discussions, params: params.merge(notes_filter: notes_filter)
|
||||
end
|
||||
|
||||
it 'does not expires notes e-tag cache for issuable if filter did not change' do
|
||||
|
@ -22,14 +30,14 @@ shared_examples 'issuable notes filter' do
|
|||
|
||||
expect_any_instance_of(issuable.class).not_to receive(:expire_note_etag_cache)
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid, notes_filter: notes_filter }
|
||||
get :discussions, params: params.merge(notes_filter: notes_filter)
|
||||
end
|
||||
|
||||
it 'does not set notes filter when database is in read only mode' do
|
||||
allow(Gitlab::Database).to receive(:read_only?).and_return(true)
|
||||
notes_filter = UserPreference::NOTES_FILTERS[:only_comments]
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid, notes_filter: notes_filter }
|
||||
get :discussions, params: params.merge(notes_filter: notes_filter)
|
||||
|
||||
expect(user.reload.notes_filter_for(issuable)).to eq(0)
|
||||
end
|
||||
|
@ -37,7 +45,7 @@ shared_examples 'issuable notes filter' do
|
|||
it 'returns only user comments' do
|
||||
user.set_notes_filter(UserPreference::NOTES_FILTERS[:only_comments], issuable)
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid }
|
||||
get :discussions, params: params
|
||||
discussions = JSON.parse(response.body)
|
||||
|
||||
expect(discussions.count).to eq(1)
|
||||
|
@ -47,7 +55,7 @@ shared_examples 'issuable notes filter' do
|
|||
it 'returns only activity notes' do
|
||||
user.set_notes_filter(UserPreference::NOTES_FILTERS[:only_activity], issuable)
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid }
|
||||
get :discussions, params: params
|
||||
discussions = JSON.parse(response.body)
|
||||
|
||||
expect(discussions.count).to eq(1)
|
||||
|
@ -60,7 +68,7 @@ shared_examples 'issuable notes filter' do
|
|||
|
||||
expect(ResourceEvents::MergeIntoNotesService).not_to receive(:new)
|
||||
|
||||
get :discussions, params: { namespace_id: project.namespace, project_id: project, id: issuable.iid }
|
||||
get :discussions, params: params
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue