summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ.J. van de Weg <git@zjvandeweg.nl>2016-11-21 20:48:18 +0100
committerZ.J. van de Weg <git@zjvandeweg.nl>2016-11-22 08:48:17 +0100
commit3ff0575669ecda15c5e72bd2987715a998f97d82 (patch)
tree3ab138ae60e7e61554bab6b8144147650436ab74
parent60c2d5907226be8cca4b911cf5a85779ab587dd2 (diff)
downloadgitlab-ce-zj-fix-trailing-whitespace-issue-create.tar.gz
Issue creation now accepts trailing whitespacezj-fix-trailing-whitespace-issue-create
-rw-r--r--lib/gitlab/chat_commands/issue_create.rb6
-rw-r--r--spec/lib/gitlab/chat_commands/issue_create_spec.rb9
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/gitlab/chat_commands/issue_create.rb b/lib/gitlab/chat_commands/issue_create.rb
index 98338ebfa27..99c1382af44 100644
--- a/lib/gitlab/chat_commands/issue_create.rb
+++ b/lib/gitlab/chat_commands/issue_create.rb
@@ -2,7 +2,9 @@ module Gitlab
module ChatCommands
class IssueCreate < IssueCommand
def self.match(text)
- /\Aissue\s+create\s+(?<title>[^\n]*)\n*(?<description>.*)\z/.match(text)
+ # we can not match \n with the dot by passing the m modifier as than
+ # the title and description are not seperated
+ /\Aissue\s+create\s+(?<title>[^\n]*)\n*(?<description>(.|\n)*)/.match(text)
end
def self.help_message
@@ -15,7 +17,7 @@ module Gitlab
def execute(match)
title = match[:title]
- description = match[:description]
+ description = match[:description].to_s.rstrip
Issues::CreateService.new(project, current_user, title: title, description: description).execute
end
diff --git a/spec/lib/gitlab/chat_commands/issue_create_spec.rb b/spec/lib/gitlab/chat_commands/issue_create_spec.rb
index df0c317ccea..dd07cff9243 100644
--- a/spec/lib/gitlab/chat_commands/issue_create_spec.rb
+++ b/spec/lib/gitlab/chat_commands/issue_create_spec.rb
@@ -32,6 +32,15 @@ describe Gitlab::ChatCommands::IssueCreate, service: true do
expect(Issue.last.description).to eq(description)
end
end
+
+ context "with more newlines between the title and the description" do
+ let(:description) { "Surfin bird" }
+ let(:regex_match) { described_class.match("issue create bird is the word\n\n#{description}\n") }
+
+ it 'creates the issue' do
+ expect { subject }.to change { project.issues.count }.by(1)
+ end
+ end
end
describe '.match' do