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
0
Merge Requests
0
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
Jérome Perrin
gitlab-ce
Commits
0013e59f
Commit
0013e59f
authored
Aug 05, 2016
by
Luke Bennett
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved notes scenarios to 'diff_notes_spec.rb'
parent
f9806bde
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
179 additions
and
180 deletions
+179
-180
features/project/merge_requests.feature
features/project/merge_requests.feature
+0
-10
spec/features/merge_requests/diff_notes_spec.rb
spec/features/merge_requests/diff_notes_spec.rb
+179
-0
spec/features/merge_requests/diffs_spec.rb
spec/features/merge_requests/diffs_spec.rb
+0
-170
No files found.
features/project/merge_requests.feature
View file @
0013e59f
...
@@ -106,16 +106,6 @@ Feature: Project Merge Requests
...
@@ -106,16 +106,6 @@ Feature: Project Merge Requests
And
I sort the list by
"Least popular"
And
I sort the list by
"Least popular"
Then
The list should be sorted by
"Least popular"
Then
The list should be sorted by
"Least popular"
@javascript
Scenario
:
I
comment on a merge request diff
Given
project
"Shop"
have
"Bug NS-05"
open merge request with diffs inside
And
I visit merge request page
"Bug NS-05"
And
I click on the Changes tab
And
I leave a comment like
"Line is wrong"
on diff
And
I switch to the merge request's comments tab
Then
I should see a discussion has started on diff
And
I should see a badge of
"1"
next to the discussion link
@javascript
@javascript
Scenario
:
I
see a new comment on merge request diff from another user in the discussion tab
Scenario
:
I
see a new comment on merge request diff from another user in the discussion tab
Given
project
"Shop"
have
"Bug NS-05"
open merge request with diffs inside
Given
project
"Shop"
have
"Bug NS-05"
open merge request with diffs inside
...
...
spec/features/merge_requests/diff_notes_spec.rb
0 → 100644
View file @
0013e59f
require
'spec_helper'
feature
'Diff notes'
,
js:
true
,
feature:
true
do
include
WaitForAjax
before
do
login_as
:admin
@merge_request
=
create
(
:merge_request
)
@project
=
@merge_request
.
source_project
end
context
'merge request diffs'
do
let
(
:comment_button_class
)
{
'.add-diff-note'
}
let
(
:notes_holder_input_class
)
{
'js-temp-notes-holder'
}
let
(
:notes_holder_input_xpath
)
{
'./following-sibling::*[contains(concat(" ", @class, " "), " notes_holder ")]'
}
let
(
:test_note_comment
)
{
'this is a test note!'
}
context
'when hovering over the parallel view diff file'
do
before
(
:each
)
do
visit
diffs_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
click_link
'Side-by-side'
end
context
'with an old line on the left and no line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="6eb14e00385d2fb284765eb1cd8d420d33d63fc9_23_22"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should not allow commenting on the right side'
do
should_not_allow_commenting
line_holder
,
'right'
end
end
context
'with no line on the left and a new line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_15_15"]'
).
find
(
:xpath
,
'..'
)
}
it
'should not allow commenting on the left side'
do
should_not_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with an old line on the left and a new line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_9_9"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with an unchanged line on the left and an unchanged line on the right'
do
let
(
:line_holder
)
{
first
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_7_7"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with a match line'
do
let
(
:line_holder
)
{
first
(
'.match'
).
find
(
:xpath
,
'..'
)
}
it
'should not allow commenting on the left side'
do
should_not_allow_commenting
line_holder
,
'left'
end
it
'should not allow commenting on the right side'
do
should_not_allow_commenting
line_holder
,
'right'
end
end
end
context
'when hovering over the inline view diff file'
do
let
(
:comment_button_class
)
{
'.add-diff-note'
}
before
(
:each
)
do
visit
diffs_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
click_link
'Inline'
end
context
'with a new line'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_10_9"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with an old line'
do
let
(
:line_holder
)
{
find
(
'[id="6eb14e00385d2fb284765eb1cd8d420d33d63fc9_22_22"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with an unchanged line'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_7_7"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with a match line'
do
let
(
:line_holder
)
{
first
(
'.match'
)
}
it
'should not allow commenting'
do
should_not_allow_commenting
line_holder
end
end
end
def
should_allow_commenting
(
line_holder
,
diff_side
=
nil
)
line
=
get_line_components
line_holder
,
diff_side
line
[
:content
].
hover
expect
(
line
[
:num
]).
to
have_css
comment_button_class
comment_on_line
line_holder
,
line
wait_for_ajax
assert_comment_persistence
line_holder
end
def
should_not_allow_commenting
(
line_holder
,
diff_side
=
nil
)
line
=
get_line_components
line_holder
,
diff_side
line
[
:content
].
hover
expect
(
line
[
:num
]).
not_to
have_css
comment_button_class
end
def
get_line_components
(
line_holder
,
diff_side
=
nil
)
if
diff_side
.
nil?
get_inline_line_components
line_holder
else
get_parallel_line_components
line_holder
,
diff_side
end
end
def
get_inline_line_components
(
line_holder
)
{
content:
line_holder
.
first
(
'.line_content'
),
num:
line_holder
.
first
(
'.diff-line-num'
)
}
end
def
get_parallel_line_components
(
line_holder
,
diff_side
=
nil
)
side_index
=
diff_side
==
'left'
?
0
:
1
{
content:
line_holder
.
all
(
'.line_content'
)[
side_index
],
num:
line_holder
.
all
(
'.diff-line-num'
)[
side_index
]
}
end
def
comment_on_line
(
line_holder
,
line
)
line
[
:num
].
find
(
comment_button_class
).
trigger
'click'
expect
(
line_holder
).
to
have_xpath
notes_holder_input_xpath
notes_holder_input
=
line_holder
.
find
(
:xpath
,
notes_holder_input_xpath
)
expect
(
notes_holder_input
[
:class
].
include?
notes_holder_input_class
).
to
be
true
notes_holder_input
.
fill_in
'note[note]'
,
with:
test_note_comment
click_button
'Comment'
end
def
assert_comment_persistence
(
line_holder
)
expect
(
line_holder
).
to
have_xpath
notes_holder_input_xpath
notes_holder_saved
=
line_holder
.
find
(
:xpath
,
notes_holder_input_xpath
)
expect
(
notes_holder_saved
[
:class
].
include?
notes_holder_input_class
).
to
be
false
expect
(
notes_holder_saved
).
to
have_content
test_note_comment
end
end
end
spec/features/merge_requests/diffs_spec.rb
View file @
0013e59f
require
'spec_helper'
require
'spec_helper'
feature
'Diffs URL'
,
js:
true
,
feature:
true
do
feature
'Diffs URL'
,
js:
true
,
feature:
true
do
include
WaitForAjax
before
do
before
do
login_as
:admin
login_as
:admin
@merge_request
=
create
(
:merge_request
)
@merge_request
=
create
(
:merge_request
)
...
@@ -24,172 +22,4 @@ feature 'Diffs URL', js: true, feature: true do
...
@@ -24,172 +22,4 @@ feature 'Diffs URL', js: true, feature: true do
expect
(
page
).
to
have_css
(
'.diffs.tab-pane.active'
)
expect
(
page
).
to
have_css
(
'.diffs.tab-pane.active'
)
end
end
end
end
context
'diff notes'
do
let
(
:comment_button_class
)
{
'.add-diff-note'
}
let
(
:notes_holder_input_class
)
{
'js-temp-notes-holder'
}
let
(
:notes_holder_input_xpath
)
{
'./following-sibling::*[contains(concat(" ", @class, " "), " notes_holder ")]'
}
let
(
:test_note_comment
)
{
'this is a test note!'
}
context
'when hovering over the parallel view diff file'
do
before
(
:each
)
do
visit
diffs_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
click_link
'Side-by-side'
end
context
'with an old line on the left and no line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="6eb14e00385d2fb284765eb1cd8d420d33d63fc9_23_22"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should not allow commenting on the right side'
do
should_not_allow_commenting
line_holder
,
'right'
end
end
context
'with no line on the left and a new line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_15_15"]'
).
find
(
:xpath
,
'..'
)
}
it
'should not allow commenting on the left side'
do
should_not_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with an old line on the left and a new line on the right'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_9_9"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with an unchanged line on the left and an unchanged line on the right'
do
let
(
:line_holder
)
{
first
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_7_7"]'
).
find
(
:xpath
,
'..'
)
}
it
'should allow commenting on the left side'
do
should_allow_commenting
line_holder
,
'left'
end
it
'should allow commenting on the right side'
do
should_allow_commenting
line_holder
,
'right'
end
end
context
'with a match line'
do
let
(
:line_holder
)
{
first
(
'.match'
).
find
(
:xpath
,
'..'
)
}
it
'should not allow commenting on the left side'
do
should_not_allow_commenting
line_holder
,
'left'
end
it
'should not allow commenting on the right side'
do
should_not_allow_commenting
line_holder
,
'right'
end
end
end
context
'when hovering over the inline view diff file'
do
let
(
:comment_button_class
)
{
'.add-diff-note'
}
before
(
:each
)
do
visit
diffs_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
click_link
'Inline'
end
context
'with a new line'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_10_9"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with an old line'
do
let
(
:line_holder
)
{
find
(
'[id="6eb14e00385d2fb284765eb1cd8d420d33d63fc9_22_22"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with an unchanged line'
do
let
(
:line_holder
)
{
find
(
'[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd_7_7"]'
)
}
it
'should allow commenting'
do
should_allow_commenting
line_holder
end
end
context
'with a match line'
do
let
(
:line_holder
)
{
first
(
'.match'
)
}
it
'should not allow commenting'
do
should_not_allow_commenting
line_holder
end
end
end
def
should_allow_commenting
(
line_holder
,
diff_side
=
nil
)
line
=
get_line_components
line_holder
,
diff_side
line
[
:content
].
hover
expect
(
line
[
:num
]).
to
have_css
comment_button_class
comment_on_line
line_holder
,
line
wait_for_ajax
assert_comment_persistence
line_holder
end
def
should_not_allow_commenting
(
line_holder
,
diff_side
=
nil
)
line
=
get_line_components
line_holder
,
diff_side
line
[
:content
].
hover
expect
(
line
[
:num
]).
not_to
have_css
comment_button_class
end
def
get_line_components
(
line_holder
,
diff_side
=
nil
)
if
diff_side
.
nil?
get_inline_line_components
line_holder
else
get_parallel_line_components
line_holder
,
diff_side
end
end
def
get_inline_line_components
(
line_holder
)
{
content:
line_holder
.
first
(
'.line_content'
),
num:
line_holder
.
first
(
'.diff-line-num'
)
}
end
def
get_parallel_line_components
(
line_holder
,
diff_side
=
nil
)
side_index
=
diff_side
==
'left'
?
0
:
1
{
content:
line_holder
.
all
(
'.line_content'
)[
side_index
],
num:
line_holder
.
all
(
'.diff-line-num'
)[
side_index
]
}
end
def
comment_on_line
(
line_holder
,
line
)
line
[
:num
].
find
(
comment_button_class
).
trigger
'click'
expect
(
line_holder
).
to
have_xpath
notes_holder_input_xpath
notes_holder_input
=
line_holder
.
find
(
:xpath
,
notes_holder_input_xpath
)
expect
(
notes_holder_input
[
:class
].
include?
notes_holder_input_class
).
to
be
true
notes_holder_input
.
fill_in
'note[note]'
,
with:
test_note_comment
click_button
'Comment'
end
def
assert_comment_persistence
(
line_holder
)
expect
(
line_holder
).
to
have_xpath
notes_holder_input_xpath
notes_holder_saved
=
line_holder
.
find
(
:xpath
,
notes_holder_input_xpath
)
expect
(
notes_holder_saved
[
:class
].
include?
notes_holder_input_class
).
to
be
false
expect
(
notes_holder_saved
).
to
have_content
test_note_comment
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