Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiyad Preukschas <riyad@informatik.uni-bremen.de>2013-01-15 03:11:35 +0400
committerRiyad Preukschas <riyad@informatik.uni-bremen.de>2013-01-15 03:52:57 +0400
commitd28176b132bdc74055f31e2d62665d5d74ebacb4 (patch)
tree4bc9c8e3778d51020da0e8bb318aa7c3830ee67d /features
parentf8e1f4a7c9ee2554efcf7376a0cfbefae8956d7b (diff)
Replace commit diff note request specs with spinach features
Diffstat (limited to 'features')
-rw-r--r--features/project/commits/commit_diff_comments.feature91
-rw-r--r--features/steps/project/comments_on_commit_diffs.rb6
-rw-r--r--features/steps/shared/diff_note.rb158
3 files changed, 255 insertions, 0 deletions
diff --git a/features/project/commits/commit_diff_comments.feature b/features/project/commits/commit_diff_comments.feature
new file mode 100644
index 00000000000..4323e8ce596
--- /dev/null
+++ b/features/project/commits/commit_diff_comments.feature
@@ -0,0 +1,91 @@
+Feature: Comments on commit diffs
+ Background:
+ Given I sign in as a user
+ And I own project "Shop"
+ And I visit project commit page
+
+ @javascript
+ Scenario: I can access add diff comment buttons
+ Then I should see add a diff comment button
+
+ @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 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't preview without text
+ Given I open a diff comment form
+ And I haven't written any diff comment text
+ Then I should not see the diff comment preview 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 I should see the diff comment preview button
+
+ @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 edit button
+
+ @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 delete a discussion comment
+ Given I leave a diff comment like "Typo, please fix"
+ And I delete a diff comment
+ Then I should not see a diff comment saying "Typo, please fix"
diff --git a/features/steps/project/comments_on_commit_diffs.rb b/features/steps/project/comments_on_commit_diffs.rb
new file mode 100644
index 00000000000..fc397a4fa91
--- /dev/null
+++ b/features/steps/project/comments_on_commit_diffs.rb
@@ -0,0 +1,6 @@
+class CommentsOnCommitDiffs < Spinach::FeatureSteps
+ include SharedAuthentication
+ include SharedDiffNote
+ include SharedPaths
+ include SharedProject
+end
diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb
new file mode 100644
index 00000000000..36597e879bb
--- /dev/null
+++ b/features/steps/shared/diff_note.rb
@@ -0,0 +1,158 @@
+module SharedDiffNote
+ include Spinach::DSL
+
+ Given 'I cancel the diff comment' do
+ within(".diff_file") do
+ find(".js-close-discussion-note-form").trigger("click")
+ end
+ end
+
+ Given 'I delete a diff comment' do
+ within(".diff_file") do
+ first(".js-note-delete").trigger("click")
+ end
+ end
+
+ Given 'I haven\'t written any diff comment text' do
+ within(".diff_file") do
+ fill_in "note[note]", with: ""
+ end
+ end
+
+ Given 'I leave a diff comment like "Typo, please fix"' do
+ find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click")
+ within(".diff_file") do
+ fill_in "note[note]", with: "Typo, please fix"
+ #click_button("Add Comment")
+ find(".js-comment-button").trigger("click")
+ end
+ end
+
+ Given 'I preview a diff comment text like "Should fix it :smile:"' do
+ find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click")
+ within(".diff_file") do
+ fill_in "note[note]", with: "Should fix it :smile:"
+ find(".js-note-preview-button").trigger("click")
+ end
+ end
+
+ Given 'I preview another diff comment text like "DRY this up"' do
+ find("#0_57_41.line_holder .js-add-diff-note-button").trigger("click")
+ within(".diff_file") do
+ fill_in "note[note]", with: "DRY this up"
+ find(".js-note-preview-button").trigger("click")
+ end
+ end
+
+ Given 'I open a diff comment form' do
+ find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click")
+ end
+
+ Given 'I open another diff comment form' do
+ find("#0_57_41.line_holder .js-add-diff-note-button").trigger("click")
+ end
+
+ Given 'I write a diff comment like ":-1: I don\'t like this"' do
+ within(".diff_file") do
+ fill_in "note[note]", with: ":-1: I don\'t like this"
+ end
+ end
+
+ Given 'I submit the diff comment' do
+ within(".diff_file") do
+ click_button("Add Comment")
+ end
+ end
+
+
+
+ Then 'I should not see the diff comment form' do
+ within(".diff_file") do
+ page.should_not have_css("form.new_note")
+ end
+ end
+
+ Then 'I should not see the diff comment preview button' do
+ within(".diff_file") do
+ page.should have_css(".js-note-preview-button", visible: false)
+ end
+ end
+
+ Then 'I should not see the diff comment text field' do
+ within(".diff_file") do
+ page.should have_css(".js-note-text", visible: false)
+ end
+ end
+
+ Then 'I should only see one diff form' do
+ within(".diff_file") do
+ page.should have_css("form.new_note", count: 1)
+ end
+ end
+
+ Then 'I should see a diff comment form with ":-1: I don\'t like this"' do
+ within(".diff_file") do
+ page.should have_field("note[note]", with: ":-1: I don\'t like this")
+ end
+ end
+
+ Then 'I should see a diff comment saying "Typo, please fix"' do
+ within(".diff_file .note") do
+ page.should have_content("Typo, please fix")
+ end
+ end
+
+ Then 'I should see a discussion reply button' do
+ within(".diff_file") do
+ page.should have_link("Reply")
+ end
+ end
+
+ Then 'I should see a temporary diff comment form' do
+ within(".diff_file") do
+ page.should have_css(".js-temp-notes-holder form.new_note")
+ end
+ end
+
+ Then 'I should see add a diff comment button' do
+ page.should have_css(".js-add-diff-note-button", visible: false)
+ end
+
+ Then 'I should see an empty diff comment form' do
+ within(".diff_file") do
+ page.should have_field("note[note]", with: "")
+ end
+ end
+
+ Then 'I should see the cancel comment button' do
+ within(".diff_file form") do
+ page.should have_css(".js-close-discussion-note-form", text: "Cancel")
+ end
+ end
+
+ Then 'I should see the diff comment preview' do
+ within(".diff_file form") do
+ page.should have_css(".js-note-preview", visible: false)
+ end
+ end
+
+ Then 'I should see the diff comment edit button' do
+ within(".diff_file") do
+ page.should have_css(".js-note-edit-button", visible: true)
+ end
+ end
+
+ Then 'I should see the diff comment preview button' do
+ within(".diff_file") do
+ page.should have_css(".js-note-preview-button", visible: true)
+ end
+ end
+
+ Then 'I should see two separate previews' do
+ within(".diff_file") do
+ page.should have_css(".js-note-preview", visible: true, count: 2)
+ page.should have_content("Should fix it")
+ page.should have_content("DRY this up")
+ end
+ end
+end