Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
a4ef4244
Commit
a4ef4244
authored
Oct 20, 2016
by
Lin Jen-Shin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Preserve note_type and position for notes from emails
Closes #23208
parent
8608beed
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
16 deletions
+16
-16
lib/gitlab/email/handler/create_note_handler.rb
lib/gitlab/email/handler/create_note_handler.rb
+3
-1
spec/fixtures/emails/commands_in_reply.eml
spec/fixtures/emails/commands_in_reply.eml
+0
-2
spec/fixtures/emails/commands_only_reply.eml
spec/fixtures/emails/commands_only_reply.eml
+0
-2
spec/lib/gitlab/email/handler/create_note_handler_spec.rb
spec/lib/gitlab/email/handler/create_note_handler_spec.rb
+13
-11
No files found.
lib/gitlab/email/handler/create_note_handler.rb
View file @
a4ef4244
...
@@ -46,7 +46,9 @@ module Gitlab
...
@@ -46,7 +46,9 @@ module Gitlab
noteable_type:
sent_notification
.
noteable_type
,
noteable_type:
sent_notification
.
noteable_type
,
noteable_id:
sent_notification
.
noteable_id
,
noteable_id:
sent_notification
.
noteable_id
,
commit_id:
sent_notification
.
commit_id
,
commit_id:
sent_notification
.
commit_id
,
line_code:
sent_notification
.
line_code
line_code:
sent_notification
.
line_code
,
position:
sent_notification
.
position
,
type:
sent_notification
.
note_type
).
execute
).
execute
end
end
end
end
...
...
spec/fixtures/emails/commands_in_reply.eml
View file @
a4ef4244
...
@@ -23,8 +23,6 @@ Cool!
...
@@ -23,8 +23,6 @@ Cool!
/close
/close
/todo
/todo
/due tomorrow
On Sun, Jun 9, 2013 at 1:39 PM, eviltrout via Discourse Meta
On Sun, Jun 9, 2013 at 1:39 PM, eviltrout via Discourse Meta
<reply+59d8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo> wrote:
<reply+59d8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo> wrote:
...
...
spec/fixtures/emails/commands_only_reply.eml
View file @
a4ef4244
...
@@ -21,8 +21,6 @@ X-Scanned-By: MIMEDefang 2.69 on IPv6:2001:470:1d:165::1
...
@@ -21,8 +21,6 @@ X-Scanned-By: MIMEDefang 2.69 on IPv6:2001:470:1d:165::1
/close
/close
/todo
/todo
/due tomorrow
On Sun, Jun 9, 2013 at 1:39 PM, eviltrout via Discourse Meta
On Sun, Jun 9, 2013 at 1:39 PM, eviltrout via Discourse Meta
<reply+59d8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo> wrote:
<reply+59d8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo> wrote:
...
...
spec/lib/gitlab/email/handler/create_note_handler_spec.rb
View file @
a4ef4244
...
@@ -12,10 +12,13 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -12,10 +12,13 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
let
(
:email_raw
)
{
fixture_file
(
'emails/valid_reply.eml'
)
}
let
(
:email_raw
)
{
fixture_file
(
'emails/valid_reply.eml'
)
}
let
(
:project
)
{
create
(
:project
,
:public
)
}
let
(
:project
)
{
create
(
:project
,
:public
)
}
let
(
:noteable
)
{
create
(
:issue
,
project:
project
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:note
)
{
create
(
:diff_note_on_merge_request
,
project:
project
)
}
let
(
:noteable
)
{
note
.
noteable
}
let!
(
:sent_notification
)
{
SentNotification
.
record
(
noteable
,
user
.
id
,
mail_key
)
}
let!
(
:sent_notification
)
do
SentNotification
.
record_note
(
note
,
user
.
id
,
mail_key
)
end
context
"when the recipient address doesn't include a mail key"
do
context
"when the recipient address doesn't include a mail key"
do
let
(
:email_raw
)
{
fixture_file
(
'emails/valid_reply.eml'
).
gsub
(
mail_key
,
""
)
}
let
(
:email_raw
)
{
fixture_file
(
'emails/valid_reply.eml'
).
gsub
(
mail_key
,
""
)
}
...
@@ -82,7 +85,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -82,7 +85,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
(
noteable
.
reload
).
to
be_closed
expect
(
noteable
.
reload
).
to
be_closed
expect
(
noteable
.
due_date
).
to
eq
(
Date
.
tomorrow
)
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_truthy
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_truthy
end
end
end
end
...
@@ -100,7 +102,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -100,7 +102,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
(
noteable
.
reload
).
to
be_open
expect
(
noteable
.
reload
).
to
be_open
expect
(
noteable
.
due_date
).
to
be_nil
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_falsy
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_falsy
end
end
end
end
...
@@ -117,7 +118,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -117,7 +118,6 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
2
)
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
2
)
expect
(
noteable
.
reload
).
to
be_closed
expect
(
noteable
.
reload
).
to
be_closed
expect
(
noteable
.
due_date
).
to
eq
(
Date
.
tomorrow
)
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_truthy
expect
(
TodoService
.
new
.
todo_exist?
(
noteable
,
user
)).
to
be_truthy
end
end
end
end
...
@@ -138,10 +138,11 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -138,10 +138,11 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
it
"creates a comment"
do
it
"creates a comment"
do
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
note
=
noteable
.
notes
.
last
n
ew_n
ote
=
noteable
.
notes
.
last
expect
(
note
.
author
).
to
eq
(
sent_notification
.
recipient
)
expect
(
new_note
.
author
).
to
eq
(
sent_notification
.
recipient
)
expect
(
note
.
note
).
to
include
(
"I could not disagree more."
)
expect
(
new_note
.
position
).
to
eq
(
note
.
position
)
expect
(
new_note
.
note
).
to
include
(
"I could not disagree more."
)
end
end
it
"adds all attachments"
do
it
"adds all attachments"
do
...
@@ -160,10 +161,11 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
...
@@ -160,10 +161,11 @@ describe Gitlab::Email::Handler::CreateNoteHandler, lib: true do
shared_examples
'an email that contains a mail key'
do
|
header
|
shared_examples
'an email that contains a mail key'
do
|
header
|
it
"fetches the mail key from the
#{
header
}
header and creates a comment"
do
it
"fetches the mail key from the
#{
header
}
header and creates a comment"
do
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
expect
{
receiver
.
execute
}.
to
change
{
noteable
.
notes
.
count
}.
by
(
1
)
note
=
noteable
.
notes
.
last
n
ew_n
ote
=
noteable
.
notes
.
last
expect
(
note
.
author
).
to
eq
(
sent_notification
.
recipient
)
expect
(
new_note
.
author
).
to
eq
(
sent_notification
.
recipient
)
expect
(
note
.
note
).
to
include
(
'I could not disagree more.'
)
expect
(
new_note
.
position
).
to
eq
(
note
.
position
)
expect
(
new_note
.
note
).
to
include
(
'I could not disagree more.'
)
end
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment