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
bdaf3b48
Commit
bdaf3b48
authored
May 14, 2018
by
blackst0ne
Committed by
Rémy Coutable
May 14, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace the `project/commits/diff_comments.feature` spinach test with an rspec analog
parent
b5163a79
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
249 additions
and
410 deletions
+249
-410
features/project/commits/diff_comments.feature
features/project/commits/diff_comments.feature
+0
-96
features/steps/shared/diff_note.rb
features/steps/shared/diff_note.rb
+0
-193
features/steps/shared/paths.rb
features/steps/shared/paths.rb
+0
-4
features/steps/shared/project.rb
features/steps/shared/project.rb
+0
-7
spec/features/projects/commit/comments/user_adds_comment_spec.rb
...atures/projects/commit/comments/user_adds_comment_spec.rb
+170
-0
spec/features/projects/commit/comments/user_deletes_comments_spec.rb
...es/projects/commit/comments/user_deletes_comments_spec.rb
+37
-0
spec/features/projects/commit/comments/user_edits_comments_spec.rb
...ures/projects/commit/comments/user_edits_comments_spec.rb
+42
-0
spec/features/projects/commit/user_comments_on_commit_spec.rb
.../features/projects/commit/user_comments_on_commit_spec.rb
+0
-110
No files found.
features/project/commits/diff_comments.feature
deleted
100644 → 0
View file @
b5163a79
@project_commits
Feature
:
Project Commits Diff Comments
Background
:
Given
I sign in as a user
And
I own project
"Shop"
And
I visit project commit page
@javascript
Scenario
:
I
can comment on a commit diff
Given
I leave a diff comment like
"Typo, please fix"
Then
I should see a diff comment saying
"Typo, please fix"
@javascript
Scenario
:
I
can add a diff comment with a single emoji
Given
I open a diff comment form
And I write a diff comment like "
:
smile
:
"
Then
I should see a diff comment with an emoji image
@javascript
Scenario
:
I
get a temporary form for the first comment on a diff line
Given
I open a diff comment form
Then
I should see a temporary diff comment form
@javascript
Scenario
:
I
have a cancel button on the diff form
Given
I open a diff comment form
Then
I should see the cancel comment button
@javascript
Scenario
:
I
can cancel a diff form
Given
I open a diff comment form
And
I cancel the diff comment
Then
I should not see the diff comment form
@javascript
Scenario
:
I
can't open a second form for a diff line
Given
I open a diff comment form
And
I open a diff comment form
Then
I should only see one diff form
@javascript
Scenario
:
I
can have multiple forms
Given
I open a diff comment form
And I write a diff comment like "
:
-1
:
I
don't like this"
And
I open another diff comment form
Then I should see a diff comment form with "
:
-1
:
I
don't like this"
And
I should see an empty diff comment form
@javascript
Scenario
:
I
can preview multiple forms separately
Given I preview a diff comment text like "Should fix it
:
smile
:
"
And
I preview another diff comment text like
"DRY this up"
Then
I should see two separate previews
@javascript
Scenario
:
I
have a reply button in discussions
Given
I leave a diff comment like
"Typo, please fix"
Then
I should see a discussion reply button
@javascript
Scenario
:
I
can preview with text
Given
I open a diff comment form
And I write a diff comment like "
:
-1
:
I
don't like this"
Then
The diff comment preview tab should display rendered Markdown
@javascript
Scenario
:
I
preview a diff comment
Given I preview a diff comment text like "Should fix it
:
smile
:
"
Then
I should see the diff comment preview
And
I should not see the diff comment text field
@javascript
Scenario
:
I
can edit after preview
Given I preview a diff comment text like "Should fix it
:
smile
:
"
Then
I should see the diff comment write tab
@javascript
Scenario
:
The form gets removed after posting
Given I preview a diff comment text like "Should fix it
:
smile
:
"
And
I submit the diff comment
Then
I should not see the diff comment form
And
I should see a discussion reply button
@javascript
Scenario
:
I
can add a comment on a side-by-side commit diff (left side)
Given
I open a diff comment form
And
I click side-by-side diff button
When
I leave a diff comment in a parallel view on the left side like
"Old comment"
Then
I should see a diff comment on the left side saying
"Old comment"
@javascript
Scenario
:
I
can add a comment on a side-by-side commit diff (right side)
Given
I open a diff comment form
And
I click side-by-side diff button
When
I leave a diff comment in a parallel view on the right side like
"New comment"
Then
I should see a diff comment on the right side saying
"New comment"
features/steps/shared/diff_note.rb
View file @
bdaf3b48
...
@@ -7,12 +7,6 @@ module SharedDiffNote
...
@@ -7,12 +7,6 @@ module SharedDiffNote
wait_for_requests
if
javascript_test?
wait_for_requests
if
javascript_test?
end
end
step
'I cancel the diff comment'
do
page
.
within
(
diff_file_selector
)
do
find
(
".js-close-discussion-note-form"
).
click
end
end
step
'I delete a diff comment'
do
step
'I delete a diff comment'
do
find
(
'.note'
).
hover
find
(
'.note'
).
hover
find
(
".js-note-delete"
).
click
find
(
".js-note-delete"
).
click
...
@@ -24,96 +18,6 @@ module SharedDiffNote
...
@@ -24,96 +18,6 @@ module SharedDiffNote
end
end
end
end
step
'I leave a diff comment like "Typo, please fix"'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
line_code
)
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
"note[note]"
,
with:
"Typo, please fix"
find
(
".js-comment-button"
).
click
end
end
end
step
'I leave a diff comment in a parallel view on the left side like "Old comment"'
do
click_parallel_diff_line
(
sample_commit
.
del_line_code
,
'old'
)
page
.
within
(
"
#{
diff_file_selector
}
form[data-line-code='
#{
sample_commit
.
del_line_code
}
']"
)
do
fill_in
"note[note]"
,
with:
"Old comment"
find
(
".js-comment-button"
).
click
end
end
step
'I leave a diff comment in a parallel view on the right side like "New comment"'
do
click_parallel_diff_line
(
sample_commit
.
line_code
,
'new'
)
page
.
within
(
"
#{
diff_file_selector
}
form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
"note[note]"
,
with:
"New comment"
find
(
".js-comment-button"
).
click
end
end
step
'I preview a diff comment text like "Should fix it :smile:"'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
line_code
)
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
"note[note]"
,
with:
"Should fix it :smile:"
find
(
'.js-md-preview-button'
).
click
end
end
end
step
'I preview another diff comment text like "DRY this up"'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
del_line_code
)
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
del_line_code
}
']"
)
do
fill_in
"note[note]"
,
with:
"DRY this up"
find
(
'.js-md-preview-button'
).
click
end
end
end
step
'I open a diff comment form'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
line_code
)
end
end
step
'I open another diff comment form'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
del_line_code
)
end
end
step
'I write a diff comment like ":-1: I don\'t like this"'
do
page
.
within
(
diff_file_selector
)
do
fill_in
"note[note]"
,
with:
":-1: I don
\'
t like this"
end
end
step
'I write a diff comment like ":smile:"'
do
page
.
within
(
diff_file_selector
)
do
click_diff_line
(
sample_commit
.
line_code
)
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
'note[note]'
,
with:
':smile:'
click_button
(
'Comment'
)
end
end
end
step
'I submit the diff comment'
do
page
.
within
(
diff_file_selector
)
do
click_button
(
"Comment"
)
end
end
step
'I should not see the diff comment form'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
not_to
have_css
(
"form.new_note"
)
end
end
step
'The diff comment preview tab should say there is nothing to do'
do
step
'The diff comment preview tab should say there is nothing to do'
do
page
.
within
(
diff_file_selector
)
do
page
.
within
(
diff_file_selector
)
do
find
(
'.js-md-preview-button'
).
click
find
(
'.js-md-preview-button'
).
click
...
@@ -121,103 +25,6 @@ module SharedDiffNote
...
@@ -121,103 +25,6 @@ module SharedDiffNote
end
end
end
end
step
'I should not see the diff comment text field'
do
page
.
within
(
diff_file_selector
)
do
expect
(
find
(
'.js-note-text'
)).
not_to
be_visible
end
end
step
'I should only see one diff form'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_css
(
"form.new-note"
,
count:
1
)
end
end
step
'I should see a diff comment form with ":-1: I don\'t like this"'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
":-1: I don
\'
t like this"
)
end
end
step
'I should see a diff comment saying "Typo, please fix"'
do
page
.
within
(
"
#{
diff_file_selector
}
.note"
)
do
expect
(
page
).
to
have_content
(
"Typo, please fix"
)
end
end
step
'I should see a diff comment on the left side saying "Old comment"'
do
page
.
within
(
"
#{
diff_file_selector
}
.notes_content.parallel.old"
)
do
expect
(
page
).
to
have_content
(
"Old comment"
)
end
end
step
'I should see a diff comment on the right side saying "New comment"'
do
page
.
within
(
"
#{
diff_file_selector
}
.notes_content.parallel.new"
)
do
expect
(
page
).
to
have_content
(
"New comment"
)
end
end
step
'I should see a discussion reply button'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_button
(
'Reply...'
)
end
end
step
'I should see a temporary diff comment form'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_css
(
".js-temp-notes-holder form.new-note"
)
end
end
step
'I should see an empty diff comment form'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
""
)
end
end
step
'I should see the cancel comment button'
do
page
.
within
(
"
#{
diff_file_selector
}
form"
)
do
expect
(
page
).
to
have_css
(
".js-close-discussion-note-form"
,
text:
"Cancel"
)
end
end
step
'I should see the diff comment preview'
do
page
.
within
(
"
#{
diff_file_selector
}
form"
)
do
expect
(
page
).
to
have_css
(
'.js-md-preview'
,
visible:
true
)
end
end
step
'I should see the diff comment write tab'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_css
(
'.js-md-write-button'
,
visible:
true
)
end
end
step
'The diff comment preview tab should display rendered Markdown'
do
page
.
within
(
diff_file_selector
)
do
find
(
'.js-md-preview-button'
).
click
expect
(
find
(
'.js-md-preview'
)).
to
have_css
(
'gl-emoji'
,
visible:
true
)
end
end
step
'I should see two separate previews'
do
page
.
within
(
diff_file_selector
)
do
expect
(
page
).
to
have_css
(
'.js-md-preview'
,
visible:
true
,
count:
2
)
expect
(
page
).
to
have_content
(
'Should fix it'
)
expect
(
page
).
to
have_content
(
'DRY this up'
)
end
end
step
'I should see a diff comment with an emoji image'
do
page
.
within
(
"
#{
diff_file_selector
}
.note"
)
do
expect
(
page
).
to
have_xpath
(
"//gl-emoji[@data-name='smile']"
)
end
end
step
'I click side-by-side diff button'
do
find
(
'#parallel-diff-btn'
).
click
end
step
'I see side-by-side diff button'
do
step
'I see side-by-side diff button'
do
expect
(
page
).
to
have_content
"Side-by-side"
expect
(
page
).
to
have_content
"Side-by-side"
end
end
...
...
features/steps/shared/paths.rb
View file @
bdaf3b48
...
@@ -303,10 +303,6 @@ module SharedPaths
...
@@ -303,10 +303,6 @@ module SharedPaths
visit
project_tags_path
(
@project
)
visit
project_tags_path
(
@project
)
end
end
step
'I visit project commit page'
do
visit
project_commit_path
(
@project
,
sample_commit
.
id
)
end
step
'I visit issue page "Release 0.4"'
do
step
'I visit issue page "Release 0.4"'
do
issue
=
Issue
.
find_by
(
title:
"Release 0.4"
)
issue
=
Issue
.
find_by
(
title:
"Release 0.4"
)
visit
project_issue_path
(
issue
.
project
,
issue
)
visit
project_issue_path
(
issue
.
project
,
issue
)
...
...
features/steps/shared/project.rb
View file @
bdaf3b48
...
@@ -13,13 +13,6 @@ module SharedProject
...
@@ -13,13 +13,6 @@ module SharedProject
@project
.
add_master
(
@user
)
@project
.
add_master
(
@user
)
end
end
# Create a specific project called "Shop"
step
'I own project "Shop"'
do
@project
=
Project
.
find_by
(
name:
"Shop"
)
@project
||=
create
(
:project
,
:repository
,
name:
"Shop"
,
namespace:
@user
.
namespace
)
@project
.
add_master
(
@user
)
end
def
current_project
def
current_project
@project
||=
Project
.
first
@project
||=
Project
.
first
end
end
...
...
spec/features/projects/commit/comments/user_adds_comment_spec.rb
0 → 100644
View file @
bdaf3b48
require
"spec_helper"
describe
"User adds a comment on a commit"
,
:js
do
include
Spec
::
Support
::
Helpers
::
Features
::
NotesHelpers
include
RepoHelpers
let
(
:comment_text
)
{
"XML attached"
}
let
(
:another_comment_text
)
{
"SVG attached"
}
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:user
)
{
create
(
:user
)
}
before
do
sign_in
(
user
)
project
.
add_developer
(
user
)
end
context
"inline view"
do
before
do
visit
(
project_commit_path
(
project
,
sample_commit
.
id
))
end
it
"adds a comment"
do
page
.
within
(
".js-main-target-form"
)
do
expect
(
page
).
not_to
have_link
(
"Cancel"
)
emoji
=
":+1:"
fill_in
(
"note[note]"
,
with:
"
#{
comment_text
}
#{
emoji
}
"
)
# Check on `Preview` tab
click_link
(
"Preview"
)
expect
(
find
(
".js-md-preview"
)).
to
have_content
(
comment_text
).
and
have_css
(
"gl-emoji"
)
expect
(
page
).
not_to
have_css
(
".js-note-text"
)
# Check on the `Write` tab
click_link
(
"Write"
)
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
"
#{
comment_text
}
#{
emoji
}
"
)
# Submit comment from the `Preview` tab to get rid of a separate `it` block
# which would specially tests if everything gets cleared from the note form.
click_link
(
"Preview"
)
click_button
(
"Comment"
)
end
wait_for_requests
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
comment_text
).
and
have_css
(
"gl-emoji"
)
end
page
.
within
(
".js-main-target-form"
)
do
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
""
).
and
have_no_css
(
".js-md-preview"
)
end
end
context
"when commenting on diff"
do
it
"adds a comment"
do
page
.
within
(
".diff-file:nth-of-type(1)"
)
do
# Open a form for a comment and check UI elements are visible and acting as expecting.
click_diff_line
(
sample_commit
.
line_code
)
expect
(
page
).
to
have_css
(
".js-temp-notes-holder form.new-note"
)
.
and
have_css
(
".js-close-discussion-note-form"
,
text:
"Cancel"
)
# The `Cancel` button closes the current form. The page should not have any open forms after that.
find
(
".js-close-discussion-note-form"
).
click
expect
(
page
).
not_to
have_css
(
"form.new_note"
)
# Try to open the same form twice. There should be only one form opened.
click_diff_line
(
sample_commit
.
line_code
)
click_diff_line
(
sample_commit
.
line_code
)
expect
(
page
).
to
have_css
(
"form.new-note"
,
count:
1
)
# Fill in a form.
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
(
"note[note]"
,
with:
"
#{
comment_text
}
:smile:"
)
end
# Open another form and check we have two forms now (because the first one is filled in).
click_diff_line
(
sample_commit
.
del_line_code
)
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
"
#{
comment_text
}
:smile:"
)
.
and
have_field
(
"note[note]"
,
with:
""
)
# Test Preview feature for both forms.
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
click_link
(
"Preview"
)
end
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
del_line_code
}
']"
)
do
fill_in
(
"note[note]"
,
with:
another_comment_text
)
click_link
(
"Preview"
)
end
expect
(
page
).
to
have_css
(
".js-md-preview"
,
visible:
true
,
count:
2
)
.
and
have_content
(
comment_text
)
.
and
have_content
(
another_comment_text
)
.
and
have_xpath
(
"//gl-emoji[@data-name='smile']"
)
# Test UI elements, then submit.
page
.
within
(
"form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
expect
(
find
(
".js-note-text"
,
visible:
false
).
text
).
to
eq
(
""
)
expect
(
page
).
to
have_css
(
'.js-md-write-button'
)
click_button
(
"Comment"
)
end
expect
(
page
).
to
have_button
(
"Reply..."
).
and
have_no_css
(
"form.new_note"
)
end
# A comment should be added and visible.
page
.
within
(
".diff-file:nth-of-type(1) .note"
)
do
expect
(
page
).
to
have_content
(
comment_text
).
and
have_xpath
(
"//gl-emoji[@data-name='smile']"
)
end
end
end
end
context
"side-by-side view"
do
before
do
visit
(
project_commit_path
(
project
,
sample_commit
.
id
,
view:
"parallel"
))
end
it
"adds a comment"
do
new_comment
=
"New comment"
old_comment
=
"Old comment"
# Left side.
click_parallel_diff_line
(
sample_commit
.
del_line_code
)
page
.
within
(
".diff-file:nth-of-type(1) form[data-line-code='
#{
sample_commit
.
del_line_code
}
']"
)
do
fill_in
(
"note[note]"
,
with:
old_comment
)
click_button
(
"Comment"
)
end
page
.
within
(
".diff-file:nth-of-type(1) .notes_content.parallel.old"
)
do
expect
(
page
).
to
have_content
(
old_comment
)
end
# Right side.
click_parallel_diff_line
(
sample_commit
.
line_code
)
page
.
within
(
".diff-file:nth-of-type(1) form[data-line-code='
#{
sample_commit
.
line_code
}
']"
)
do
fill_in
(
"note[note]"
,
with:
new_comment
)
click_button
(
"Comment"
)
end
wait_for_requests
expect
(
all
(
".diff-file:nth-of-type(1) .notes_content.parallel.new"
)[
1
].
text
).
to
have_content
(
new_comment
)
end
end
private
def
click_diff_line
(
line
)
find
(
".line_holder[id='
#{
line
}
'] td:nth-of-type(1)"
).
hover
find
(
".line_holder[id='
#{
line
}
'] button"
).
click
end
def
click_parallel_diff_line
(
line
)
find
(
".line_holder.parallel td[id='
#{
line
}
']"
).
find
(
:xpath
,
'preceding-sibling::*[1][self::td]'
).
hover
find
(
".line_holder.parallel button[data-line-code='
#{
line
}
']"
).
click
end
end
spec/features/projects/commit/comments/user_deletes_comments_spec.rb
0 → 100644
View file @
bdaf3b48
require
"spec_helper"
describe
"User deletes comments on a commit"
,
:js
do
include
Spec
::
Support
::
Helpers
::
Features
::
NotesHelpers
include
RepoHelpers
let
(
:comment_text
)
{
"XML attached"
}
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:user
)
{
create
(
:user
)
}
before
do
sign_in
(
user
)
project
.
add_developer
(
user
)
visit
(
project_commit_path
(
project
,
sample_commit
.
id
))
add_note
(
comment_text
)
end
it
"deletes comment"
do
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
comment_text
)
end
page
.
within
(
".main-notes-list"
)
do
note
=
find
(
".note"
)
note
.
hover
find
(
".more-actions"
).
click
find
(
".more-actions .dropdown-menu li"
,
match: :first
)
accept_confirm
{
find
(
".js-note-delete"
).
click
}
end
expect
(
page
).
not_to
have_css
(
".note"
)
end
end
spec/features/projects/commit/comments/user_edits_comments_spec.rb
0 → 100644
View file @
bdaf3b48
require
"spec_helper"
describe
"User edits a comment on a commit"
,
:js
do
include
Spec
::
Support
::
Helpers
::
Features
::
NotesHelpers
include
RepoHelpers
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:user
)
{
create
(
:user
)
}
before
do
sign_in
(
user
)
project
.
add_developer
(
user
)
visit
(
project_commit_path
(
project
,
sample_commit
.
id
))
add_note
(
"XML attached"
)
end
it
"edits comment"
do
NEW_COMMENT_TEXT
=
"+1 Awesome!"
.
freeze
page
.
within
(
".main-notes-list"
)
do
note
=
find
(
".note"
)
note
.
hover
note
.
find
(
".js-note-edit"
).
click
end
page
.
find
(
".current-note-edit-form textarea"
)
page
.
within
(
".current-note-edit-form"
)
do
fill_in
(
"note[note]"
,
with:
NEW_COMMENT_TEXT
)
click_button
(
"Save comment"
)
end
wait_for_requests
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
NEW_COMMENT_TEXT
)
end
end
end
spec/features/projects/commit/user_comments_on_commit_spec.rb
deleted
100644 → 0
View file @
b5163a79
require
"spec_helper"
describe
"User comments on commit"
,
:js
do
include
Spec
::
Support
::
Helpers
::
Features
::
NotesHelpers
include
RepoHelpers
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:user
)
{
create
(
:user
)
}
COMMENT_TEXT
=
"XML attached"
.
freeze
before
do
sign_in
(
user
)
project
.
add_developer
(
user
)
visit
(
project_commit_path
(
project
,
sample_commit
.
id
))
end
context
"when adding new comment"
do
it
"adds comment"
do
EMOJI
=
":+1:"
.
freeze
page
.
within
(
".js-main-target-form"
)
do
expect
(
page
).
not_to
have_link
(
"Cancel"
)
fill_in
(
"note[note]"
,
with:
"
#{
COMMENT_TEXT
}
#{
EMOJI
}
"
)
# Check on `Preview` tab
click_link
(
"Preview"
)
expect
(
find
(
".js-md-preview"
)).
to
have_content
(
COMMENT_TEXT
).
and
have_css
(
"gl-emoji"
)
expect
(
page
).
not_to
have_css
(
".js-note-text"
)
# Check on `Write` tab
click_link
(
"Write"
)
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
"
#{
COMMENT_TEXT
}
#{
EMOJI
}
"
)
# Submit comment from the `Preview` tab to get rid of a separate `it` block
# which would specially tests if everything gets cleared from the note form.
click_link
(
"Preview"
)
click_button
(
"Comment"
)
end
wait_for_requests
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
COMMENT_TEXT
).
and
have_css
(
"gl-emoji"
)
end
page
.
within
(
".js-main-target-form"
)
do
expect
(
page
).
to
have_field
(
"note[note]"
,
with:
""
).
and
have_no_css
(
".js-md-preview"
)
end
end
end
context
"when editing comment"
do
before
do
add_note
(
COMMENT_TEXT
)
end
it
"edits comment"
do
NEW_COMMENT_TEXT
=
"+1 Awesome!"
.
freeze
page
.
within
(
".main-notes-list"
)
do
note
=
find
(
".note"
)
note
.
hover
note
.
find
(
".js-note-edit"
).
click
end
page
.
find
(
".current-note-edit-form textarea"
)
page
.
within
(
".current-note-edit-form"
)
do
fill_in
(
"note[note]"
,
with:
NEW_COMMENT_TEXT
)
click_button
(
"Save comment"
)
end
wait_for_requests
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
NEW_COMMENT_TEXT
)
end
end
end
context
"when deleting comment"
do
before
do
add_note
(
COMMENT_TEXT
)
end
it
"deletes comment"
do
page
.
within
(
".note"
)
do
expect
(
page
).
to
have_content
(
COMMENT_TEXT
)
end
page
.
within
(
".main-notes-list"
)
do
note
=
find
(
".note"
)
note
.
hover
find
(
".more-actions"
).
click
find
(
".more-actions .dropdown-menu li"
,
match: :first
)
accept_confirm
{
find
(
".js-note-delete"
).
click
}
end
expect
(
page
).
not_to
have_css
(
".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