summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-13 23:11:16 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-13 23:11:16 +0200
commit2a7da96a0d7fb71a1371ce2d97157a2dd8a766f2 (patch)
tree3646ffe888ee54fe5e2ea375c6e7f54da381f275 /features
parentc8e1c53f43aa09c5e801cdcdc8f4b44576b34274 (diff)
parent2d554f42f07a9bebcb6d43ace2cdeedcc54e8de9 (diff)
downloadgitlab-ce-2a7da96a0d7fb71a1371ce2d97157a2dd8a766f2.tar.gz
Merge branch 'toggle_diff_comments' of https://github.com/jacob-carlborg/gitlabhq into jacob-carlborg-toggle_diff_comments
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> Conflicts: app/assets/stylesheets/sections/commits.scss app/assets/stylesheets/sections/notes.scss app/views/projects/commits/_diffs.html.haml features/steps/project/merge_requests.rb
Diffstat (limited to 'features')
-rw-r--r--features/project/merge_requests.feature44
-rw-r--r--features/steps/project/merge_requests.rb68
2 files changed, 112 insertions, 0 deletions
diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature
index 435c47a276c..6a2ba7e3b28 100644
--- a/features/project/merge_requests.feature
+++ b/features/project/merge_requests.feature
@@ -95,3 +95,47 @@ Feature: Project Merge Requests
Given I visit merge request page "Bug NS-04"
And I leave a comment with a header containing "Comment with a header"
Then The comment with the header should not have an ID
+
+ # Toggling inline comments
+
+ @javascript
+ Scenario: I hide comments on a merge request diff with comments in a single file
+ Given project "Shop" have "Bug NS-05" open merge request with diffs inside
+ And I visit merge request page "Bug NS-05"
+ And I switch to the diff tab
+ And I leave a comment like "Line is wrong" on line 39 of the second file
+ And I click link "Hide inline discussion" of the second file
+ Then I should not see a comment like "Line is wrong" in the second file
+
+ @javascript
+ Scenario: I show comments on a merge request diff with comments in a single file
+ Given project "Shop" have "Bug NS-05" open merge request with diffs inside
+ And I visit merge request page "Bug NS-05"
+ And I switch to the diff tab
+ And I leave a comment like "Line is wrong" on line 39 of the second file
+ And I click link "Hide inline discussion" of the second file
+ And I click link "Show inline discussion" of the second file
+ Then I should see a comment like "Line is wrong" in the second file
+
+ @javascript
+ Scenario: I hide comments on a merge request diff with comments in multiple files
+ Given project "Shop" have "Bug NS-05" open merge request with diffs inside
+ And I visit merge request page "Bug NS-05"
+ And I switch to the diff tab
+ And I leave a comment like "Line is correct" on line 12 of the first file
+ And I leave a comment like "Line is wrong" on line 39 of the second file
+ And I click link "Hide inline discussion" of the second file
+ Then I should not see a comment like "Line is wrong" in the second file
+ And I should still see a comment like "Line is correct" in the first file
+
+ @javascript
+ Scenario: I show comments on a merge request diff with comments in multiple files
+ Given project "Shop" have "Bug NS-05" open merge request with diffs inside
+ And I visit merge request page "Bug NS-05"
+ And I switch to the diff tab
+ And I leave a comment like "Line is correct" on line 12 of the first file
+ And I leave a comment like "Line is wrong" on line 39 of the second file
+ And I click link "Hide inline discussion" of the second file
+ And I click link "Show inline discussion" of the second file
+ Then I should see a comment like "Line is wrong" in the second file
+ And I should still see a comment like "Line is correct" in the first file
diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb
index 813e7439b2c..f42eb6377ce 100644
--- a/features/steps/project/merge_requests.rb
+++ b/features/steps/project/merge_requests.rb
@@ -182,6 +182,62 @@ class ProjectMergeRequests < Spinach::FeatureSteps
end
end
+ step 'I click link "Hide inline discussion" of the second file' do
+ within '.files [id^=diff]:nth-child(2)' do
+ click_link "Diff comments"
+ end
+ end
+
+ step 'I click link "Show inline discussion" of the second file' do
+ within '.files [id^=diff]:nth-child(2)' do
+ click_link "Diff comments"
+ end
+ end
+
+ step 'I should not see a comment like "Line is wrong" in the second file' do
+ within '.files [id^=diff]:nth-child(2)' do
+ page.should_not have_visible_content "Line is wrong"
+ end
+ end
+
+ step 'I should see a comment like "Line is wrong" in the second file' do
+ within '.files [id^=diff]:nth-child(2) .note-text' do
+ page.should have_visible_content "Line is wrong"
+ end
+ end
+
+ step 'I leave a comment like "Line is correct" on line 12 of the first file' do
+ init_diff_note_first_file
+
+ within(".js-discussion-note-form") do
+ fill_in "note_note", with: "Line is correct"
+ click_button "Add Comment"
+ end
+
+ within ".files [id^=diff]:nth-child(1) .note-text" do
+ page.should have_content "Line is correct"
+ end
+ end
+
+ step 'I leave a comment like "Line is wrong" on line 39 of the second file' do
+ init_diff_note_second_file
+
+ within(".js-discussion-note-form") do
+ fill_in "note_note", with: "Line is wrong"
+ click_button "Add Comment"
+ end
+
+ within ".files [id^=diff]:nth-child(2) .note-text" do
+ page.should have_content "Line is wrong"
+ end
+ end
+
+ step 'I should still see a comment like "Line is correct" in the first file' do
+ within '.files [id^=diff]:nth-child(1) .note-text' do
+ page.should have_visible_content "Line is correct"
+ end
+ end
+
def project
@project ||= Project.find_by!(name: "Shop")
end
@@ -204,4 +260,16 @@ class ProjectMergeRequests < Spinach::FeatureSteps
page.should have_content message
end
end
+
+ def init_diff_note_first_file
+ find('a[data-line-code="a5cc2925ca8258af241be7e5b0381edf30266302_12_12"]').click
+ end
+
+ def init_diff_note_second_file
+ find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_28_39"]').click
+ end
+
+ def have_visible_content (text)
+ have_css("*", text: text, visible: true)
+ end
end