diff options
| author | Rubén Dávila <rdavila84@gmail.com> | 2016-02-16 21:15:08 -0500 |
|---|---|---|
| committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-19 13:14:55 -0500 |
| commit | 87b076f2ce6a791f6173eedda3ad4505d165451c (patch) | |
| tree | 033d48a80163b73df658b7c2c6733171c3ec7d13 /features | |
| parent | 28aaef24adba2b39e0744d888b0e02c7bdb95c0b (diff) | |
| download | gitlab-ce-87b076f2ce6a791f6173eedda3ad4505d165451c.tar.gz | |
Add some spinach specs
Diffstat (limited to 'features')
| -rw-r--r-- | features/project/commits/revert.feature | 28 | ||||
| -rw-r--r-- | features/project/merge_requests/revert.feature | 30 | ||||
| -rw-r--r-- | features/steps/project/commits/revert.rb | 40 | ||||
| -rw-r--r-- | features/steps/project/merge_requests/revert.rb | 56 |
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 |
