summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-02-16 21:15:08 -0500
committerRobert Speicher <rspeicher@gmail.com>2016-02-19 13:14:55 -0500
commit87b076f2ce6a791f6173eedda3ad4505d165451c (patch)
tree033d48a80163b73df658b7c2c6733171c3ec7d13
parent28aaef24adba2b39e0744d888b0e02c7bdb95c0b (diff)
downloadgitlab-ce-87b076f2ce6a791f6173eedda3ad4505d165451c.tar.gz
Add some spinach specs
-rw-r--r--features/project/commits/revert.feature28
-rw-r--r--features/project/merge_requests/revert.feature30
-rw-r--r--features/steps/project/commits/revert.rb40
-rw-r--r--features/steps/project/merge_requests/revert.rb56
4 files changed, 154 insertions, 0 deletions
diff --git a/features/project/commits/revert.feature b/features/project/commits/revert.feature
new file mode 100644
index 00000000000..7a2effafe03
--- /dev/null
+++ b/features/project/commits/revert.feature
@@ -0,0 +1,28 @@
+@project_commits
+Feature: Revert Commits
+ Background:
+ Given I sign in as a user
+ And I own a project
+ And I visit my project's commits page
+
+ Scenario: I revert a commit
+ Given I click on commit link
+ And I click on the revert button
+ And I revert the changes directly
+ Then I should see the revert commit notice
+
+ Scenario: I revert a commit that was previously reverted
+ Given I click on commit link
+ And I click on the revert button
+ And I revert the changes directly
+ And I visit my project's commits page
+ And I click on commit link
+ And I click on the revert button
+ And I revert the changes directly
+ Then I should see a revert error
+
+ Scenario: I revert a commit in a new merge request
+ Given I click on commit link
+ And I click on the revert button
+ And I revert the changes in a new merge request
+ Then I should see the new merge request notice
diff --git a/features/project/merge_requests/revert.feature b/features/project/merge_requests/revert.feature
new file mode 100644
index 00000000000..d767b088883
--- /dev/null
+++ b/features/project/merge_requests/revert.feature
@@ -0,0 +1,30 @@
+@project_merge_requests
+Feature: Revert Merge Requests
+ Background:
+ Given There is an open Merge Request
+ And I am signed in as a developer of the project
+ And I am on the Merge Request detail page
+ And I click on Accept Merge Request
+
+ @javascript
+ Scenario: I revert a merge request
+ Given I click on the revert button
+ And I revert the changes directly
+ Then I should see the revert merge request notice
+
+ @javascript
+ Scenario: I revert a merge request that was previously reverted
+ Given I click on the revert button
+ And I revert the changes directly
+ And I am on the Merge Request detail page
+ And I click on the revert button
+ And I revert the changes directly
+ Then I should see a revert error
+
+ @javascript
+ Scenario: I revert a merge request in a new merge request
+ Given I click on the revert button
+ And I am on the Merge Request detail page
+ And I click on the revert button
+ And I revert the changes in a new merge request
+ Then I should see the new merge request notice
diff --git a/features/steps/project/commits/revert.rb b/features/steps/project/commits/revert.rb
new file mode 100644
index 00000000000..94a5d4e2e4d
--- /dev/null
+++ b/features/steps/project/commits/revert.rb
@@ -0,0 +1,40 @@
+class Spinach::Features::RevertCommits < Spinach::FeatureSteps
+ include SharedAuthentication
+ include SharedProject
+ include SharedPaths
+ include SharedDiffNote
+ include RepoHelpers
+
+ step 'I click on commit link' do
+ visit namespace_project_commit_path(@project.namespace, @project, sample_commit.id)
+ end
+
+ step 'I click on the revert button' do
+ find("a[href='#modal-revert-commit']").click
+ end
+
+ step 'I revert the changes directly' do
+ page.within('#modal-revert-commit') do
+ uncheck 'create_merge_request'
+ click_button 'Revert'
+ end
+ end
+
+ step 'I should see the revert commit notice' do
+ page.should have_content('The commit has been successfully reverted.')
+ end
+
+ step 'I should see a revert error' do
+ page.should have_content('Sorry, we cannot revert this commit automatically.')
+ end
+
+ step 'I revert the changes in a new merge request' do
+ page.within('#modal-revert-commit') do
+ click_button 'Revert'
+ end
+ end
+
+ step 'I should see the new merge request notice' do
+ page.should have_content('The commit has been successfully reverted. You can now submit a merge request to get this change into the original branch.')
+ end
+end
diff --git a/features/steps/project/merge_requests/revert.rb b/features/steps/project/merge_requests/revert.rb
new file mode 100644
index 00000000000..c5a4cfce6f0
--- /dev/null
+++ b/features/steps/project/merge_requests/revert.rb
@@ -0,0 +1,56 @@
+class Spinach::Features::RevertMergeRequests < Spinach::FeatureSteps
+ include LoginHelpers
+ include GitlabRoutingHelper
+
+ step 'I click on the revert button' do
+ find("a[href='#modal-revert-commit']").click
+ end
+
+ step 'I revert the changes directly' do
+ page.within('#modal-revert-commit') do
+ uncheck 'create_merge_request'
+ click_button 'Revert'
+ end
+ end
+
+ step 'I should see the revert merge request notice' do
+ page.should have_content('The merge request has been successfully reverted.')
+ end
+
+ step 'I should not see the revert button' do
+ expect(page).not_to have_selector(:xpath, "a[href='#modal-revert-commit']")
+ end
+
+ step 'I am on the Merge Request detail page' do
+ visit merge_request_path(@merge_request)
+ end
+
+ step 'I click on Accept Merge Request' do
+ click_button('Accept Merge Request')
+ end
+
+ step 'I am signed in as a developer of the project' do
+ login_as(@user)
+ end
+
+ step 'There is an open Merge Request' do
+ @user = create(:user)
+ @project = create(:project, :public)
+ @project_member = create(:project_member, user: @user, project: @project, access_level: ProjectMember::DEVELOPER)
+ @merge_request = create(:merge_request, :with_diffs, :simple, source_project: @project)
+ end
+
+ step 'I should see a revert error' do
+ page.should have_content('Sorry, we cannot revert this merge request automatically.')
+ end
+
+ step 'I revert the changes in a new merge request' do
+ page.within('#modal-revert-commit') do
+ click_button 'Revert'
+ end
+ end
+
+ step 'I should see the new merge request notice' do
+ page.should have_content('The merge request has been successfully reverted. You can now submit a merge request to get this change into the original branch.')
+ end
+end