diff options
author | Sean McGivern <sean@gitlab.com> | 2017-11-06 13:48:34 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2017-11-06 14:40:13 +0000 |
commit | 5e7d68ef798c110204351ec089acd896271c4315 (patch) | |
tree | 600b43cafb3cb4ef3a5fa7768230d4c26f912240 | |
parent | cfc932cad10b1d6c494222e9d91aa75583b56145 (diff) | |
download | gitlab-ce-39791-when-reopening-an-issue-the-mattermost-notification-has-no-context-to-the-issue.tar.gz |
Fix issue reopen Mattermost / Slack message39791-when-reopening-an-issue-the-mattermost-notification-has-no-context-to-the-issue
When an issue is reopened, the action is 'reopen', but the state is 'opened' (as
we don't have a separate 'reopened' state any more).
Because we checked the action in one method and the state in another, this lead
to a weird case where the mesage neither linked to the issue, nor contained an
attachment with its details. Just checking the action is fine, as it's the most
granular.
3 files changed, 19 insertions, 1 deletions
diff --git a/app/models/project_services/chat_message/issue_message.rb b/app/models/project_services/chat_message/issue_message.rb index 1327b075858..3273f41dbd2 100644 --- a/app/models/project_services/chat_message/issue_message.rb +++ b/app/models/project_services/chat_message/issue_message.rb @@ -39,7 +39,7 @@ module ChatMessage private def message - if state == 'opened' + if opened_issue? "[#{project_link}] Issue #{state} by #{user_combined_name}" else "[#{project_link}] Issue #{issue_link} #{state} by #{user_combined_name}" diff --git a/changelogs/unreleased/39791-when-reopening-an-issue-the-mattermost-notification-has-no-context-to-the-issue.yml b/changelogs/unreleased/39791-when-reopening-an-issue-the-mattermost-notification-has-no-context-to-the-issue.yml new file mode 100644 index 00000000000..143641c6183 --- /dev/null +++ b/changelogs/unreleased/39791-when-reopening-an-issue-the-mattermost-notification-has-no-context-to-the-issue.yml @@ -0,0 +1,5 @@ +--- +title: Include link to issue in reopen message for Slack and Mattermost notifications +merge_request: +author: +type: fixed diff --git a/spec/models/project_services/chat_message/issue_message_spec.rb b/spec/models/project_services/chat_message/issue_message_spec.rb index d37726dc3f1..f7a35fdc88a 100644 --- a/spec/models/project_services/chat_message/issue_message_spec.rb +++ b/spec/models/project_services/chat_message/issue_message_spec.rb @@ -66,6 +66,19 @@ describe ChatMessage::IssueMessage do expect(subject.attachments).to be_empty end end + + context 'reopen' do + before do + args[:object_attributes][:action] = 'reopen' + args[:object_attributes][:state] = 'opened' + end + + it 'returns a message regarding reopening of issues' do + expect(subject.pretext) + .to eq('[<http://somewhere.com|project_name>] Issue <http://url.com|#100 Issue title> opened by Test User (test.user)') + expect(subject.attachments).to be_empty + end + end end context 'with markdown' do |