BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
2756e612
Commit
2756e612
authored
Apr 12, 2017
by
Rémy Coutable
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reorganize feature specs for MR notes
Signed-off-by:
Rémy Coutable
<
remy@rymai.me
>
parent
c3bb21ff
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
146 deletions
+37
-146
user_posts_diff_notes_spec.rb
spec/features/merge_requests/user_posts_diff_notes_spec.rb
+0
-0
user_posts_notes.rb
spec/features/merge_requests/user_posts_notes.rb
+6
-146
user_sees_system_notes_spec.rb
spec/features/merge_requests/user_sees_system_notes_spec.rb
+31
-0
No files found.
spec/features/merge_requests/diff_notes_spec.rb
→
spec/features/merge_requests/
user_posts_
diff_notes_spec.rb
View file @
2756e612
This diff is collapsed.
Click to expand it.
spec/features/
notes_on_merge_requests_spec
.rb
→
spec/features/
merge_requests/user_posts_notes
.rb
View file @
2756e612
require
'spec_helper'
describe
'Comments'
,
feature:
true
do
include
RepoHelpers
include
WaitForAjax
describe
'On a merge request'
,
js:
true
,
feature:
true
do
let!
(
:project
)
{
create
(
:project
)
}
let!
(
:merge_request
)
do
describe
'Merge requests > User posts notes'
,
:js
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:merge_request
)
do
create
(
:merge_request
,
source_project:
project
,
target_project:
project
)
end
let!
(
:note
)
do
create
(
:note_on_merge_request
,
:with_attachment
,
noteable:
merge_request
,
project:
project
)
...
...
@@ -51,14 +46,14 @@ describe 'Comments', feature: true do
describe
'when posting a note'
do
before
do
page
.
within
(
'.js-main-target-form'
)
do
fill_in
'note[note]'
,
with:
'This is aw
some!'
fill_in
'note[note]'
,
with:
'This is awe
some!'
find
(
'.js-md-preview-button'
).
click
click_button
'Comment'
end
end
it
'is added and form reset'
do
is_expected
.
to
have_content
(
'This is aw
some!'
)
is_expected
.
to
have_content
(
'This is awe
some!'
)
page
.
within
(
'.js-main-target-form'
)
do
expect
(
page
).
to
have_no_field
(
'note[note]'
,
with:
'This is awesome!'
)
expect
(
page
).
to
have_css
(
'.js-md-preview'
,
visible: :hidden
)
...
...
@@ -69,7 +64,7 @@ describe 'Comments', feature: true do
end
end
describe
'when editing a note'
,
js:
true
do
describe
'when editing a note'
do
it
'there should be a hidden edit form'
do
is_expected
.
to
have_css
(
'.note-edit-form:not(.mr-note-edit-form)'
,
visible:
false
,
count:
1
)
is_expected
.
to
have_css
(
'.note-edit-form.mr-note-edit-form'
,
visible:
false
,
count:
1
)
...
...
@@ -147,139 +142,4 @@ describe 'Comments', feature: true do
end
end
end
end
describe
'Handles cross-project system notes'
,
js:
true
,
feature:
true
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
:public
)
}
let
(
:project2
)
{
create
(
:project
,
:private
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project2
)
}
let
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
project
,
source_branch:
'markdown'
)
}
let!
(
:note
)
{
create
(
:note_on_merge_request
,
:system
,
noteable:
merge_request
,
project:
project
,
note:
"mentioned in
#{
issue
.
to_reference
(
project
)
}
"
)
}
it
'shows the system note'
do
login_as
:admin
visit
namespace_project_merge_request_path
(
project
.
namespace
,
project
,
merge_request
)
expect
(
page
).
to
have_css
(
'.system-note'
)
end
it
'hides redacted system note'
do
visit
namespace_project_merge_request_path
(
project
.
namespace
,
project
,
merge_request
)
expect
(
page
).
not_to
have_css
(
'.system-note'
)
end
end
describe
'On a merge request diff'
,
js:
true
,
feature:
true
do
let
(
:merge_request
)
{
create
(
:merge_request
)
}
let
(
:project
)
{
merge_request
.
source_project
}
before
do
login_as
:admin
visit
diffs_namespace_project_merge_request_path
(
project
.
namespace
,
project
,
merge_request
)
end
subject
{
page
}
describe
'when adding a note'
do
before
do
click_diff_line
end
describe
'the notes holder'
do
it
{
is_expected
.
to
have_css
(
'.js-temp-notes-holder'
)
}
it
'has .new_note css class'
do
page
.
within
(
'.js-temp-notes-holder'
)
do
expect
(
subject
).
to
have_css
(
'.new-note'
)
end
end
end
describe
'the note form'
do
it
"does not add a second form for same row"
do
click_diff_line
is_expected
.
to
have_css
(
"form[data-line-code='
#{
line_code
}
']"
,
count:
1
)
end
it
'is removed when canceled'
do
is_expected
.
to
have_css
(
'.js-temp-notes-holder'
)
page
.
within
(
"form[data-line-code='
#{
line_code
}
']"
)
do
find
(
'.js-close-discussion-note-form'
).
trigger
(
'click'
)
end
is_expected
.
to
have_no_css
(
'.js-temp-notes-holder'
)
end
end
end
describe
'with muliple note forms'
do
before
do
click_diff_line
click_diff_line
(
line_code_2
)
end
it
{
is_expected
.
to
have_css
(
'.js-temp-notes-holder'
,
count:
2
)
}
describe
'previewing them separately'
do
before
do
# add two separate texts and trigger previews on both
page
.
within
(
"tr[id='
#{
line_code
}
'] + .js-temp-notes-holder"
)
do
fill_in
'note[note]'
,
with:
'One comment on line 7'
find
(
'.js-md-preview-button'
).
click
end
page
.
within
(
"tr[id='
#{
line_code_2
}
'] + .js-temp-notes-holder"
)
do
fill_in
'note[note]'
,
with:
'Another comment on line 10'
find
(
'.js-md-preview-button'
).
click
end
end
end
describe
'posting a note'
do
before
do
page
.
within
(
"tr[id='
#{
line_code_2
}
'] + .js-temp-notes-holder"
)
do
fill_in
'note[note]'
,
with:
'Another comment on line 10'
click_button
(
'Comment'
)
end
end
it
'adds as discussion'
do
is_expected
.
to
have_content
(
'Another comment on line 10'
)
is_expected
.
to
have_css
(
'.notes_holder'
)
is_expected
.
to
have_css
(
'.notes_holder .note'
,
count:
1
)
is_expected
.
to
have_button
(
'Reply...'
)
end
it
'adds code to discussion'
do
click_button
'Reply...'
page
.
within
(
first
(
'.js-discussion-note-form'
))
do
fill_in
'note[note]'
,
with:
'```{{ test }}```'
click_button
(
'Comment'
)
end
expect
(
page
).
to
have_content
(
'{{ test }}'
)
end
end
end
end
def
line_code
sample_compare
.
changes
.
first
[
:line_code
]
end
def
line_code_2
sample_compare
.
changes
.
last
[
:line_code
]
end
def
click_diff_line
(
data
=
line_code
)
find
(
".line_holder[id='
#{
data
}
'] td.line_content"
).
hover
find
(
".line_holder[id='
#{
data
}
'] button"
).
trigger
(
'click'
)
end
end
spec/features/merge_requests/user_sees_system_notes_spec.rb
0 → 100644
View file @
2756e612
require
'spec_helper'
feature
'Merge requests > User sees system notes'
do
let
(
:public_project
)
{
create
(
:project
,
:public
)
}
let
(
:private_project
)
{
create
(
:project
,
:private
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
private_project
)
}
let
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
public_project
,
source_branch:
'markdown'
)
}
let!
(
:note
)
{
create
(
:note_on_merge_request
,
:system
,
noteable:
merge_request
,
project:
public_project
,
note:
"mentioned in
#{
issue
.
to_reference
(
public_project
)
}
"
)
}
context
'when logged-in as a member of the private project'
do
before
do
user
=
create
(
:user
)
private_project
.
add_developer
(
user
)
login_as
(
user
)
end
it
'shows the system note'
do
visit
namespace_project_merge_request_path
(
public_project
.
namespace
,
public_project
,
merge_request
)
expect
(
page
).
to
have_css
(
'.system-note'
)
end
end
context
'when not logged-in'
do
it
'hides the system note'
do
visit
namespace_project_merge_request_path
(
public_project
.
namespace
,
public_project
,
merge_request
)
expect
(
page
).
not_to
have_css
(
'.system-note'
)
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