From b5a091e3a4c01374138b3b327ec8cde3c23bef69 Mon Sep 17 00:00:00 2001 From: "Vitaliy @blackst0ne Klachkov" Date: Mon, 18 Sep 2017 16:15:42 +1100 Subject: Replace the 'project/commits/revert.feature' spinach test with an rspec analog --- .../replace_project_commits_revert-feature.yml | 5 ++ features/project/commits/revert.feature | 31 ------------ features/steps/project/commits/revert.rb | 42 ---------------- .../projects/commit/user_reverts_commit_spec.rb | 56 ++++++++++++++++++++++ 4 files changed, 61 insertions(+), 73 deletions(-) create mode 100644 changelogs/unreleased/replace_project_commits_revert-feature.yml delete mode 100644 features/project/commits/revert.feature delete mode 100644 features/steps/project/commits/revert.rb create mode 100644 spec/features/projects/commit/user_reverts_commit_spec.rb diff --git a/changelogs/unreleased/replace_project_commits_revert-feature.yml b/changelogs/unreleased/replace_project_commits_revert-feature.yml new file mode 100644 index 00000000000..7fc9fcf3580 --- /dev/null +++ b/changelogs/unreleased/replace_project_commits_revert-feature.yml @@ -0,0 +1,5 @@ +--- +title: Replace the 'project/commits/revert.feature' spinach test with an rspec analog +merge_request: 14325 +author: Vitaliy @blackst0ne Klachkov +type: other diff --git a/features/project/commits/revert.feature b/features/project/commits/revert.feature deleted file mode 100644 index 7ee1d717d80..00000000000 --- a/features/project/commits/revert.feature +++ /dev/null @@ -1,31 +0,0 @@ -@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 - - @javascript - 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 - - @javascript - 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 - - @javascript - 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/steps/project/commits/revert.rb b/features/steps/project/commits/revert.rb deleted file mode 100644 index ebfa7a878bb..00000000000 --- a/features/steps/project/commits/revert.rb +++ /dev/null @@ -1,42 +0,0 @@ -class Spinach::Features::RevertCommits < Spinach::FeatureSteps - include SharedAuthentication - include SharedProject - include SharedPaths - include SharedDiffNote - include RepoHelpers - - step 'I click on commit link' do - visit project_commit_path(@project, sample_commit.id) - end - - step 'I click on the revert button' do - find(".header-action-buttons .dropdown").click - 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.') - page.should have_content("From revert-#{Commit.truncate_sha(sample_commit.id)} into master") - end -end diff --git a/spec/features/projects/commit/user_reverts_commit_spec.rb b/spec/features/projects/commit/user_reverts_commit_spec.rb new file mode 100644 index 00000000000..221f1d7757e --- /dev/null +++ b/spec/features/projects/commit/user_reverts_commit_spec.rb @@ -0,0 +1,56 @@ +require 'spec_helper' + +describe 'User reverts a commit', :js do + include RepoHelpers + + let(:project) { create(:project, :repository, namespace: user.namespace) } + let(:user) { create(:user) } + + before do + sign_in(user) + + visit(project_commit_path(project, sample_commit.id)) + + find('.header-action-buttons .dropdown').click + find('a[href="#modal-revert-commit"]').click + end + + context 'without creating a new merge request' do + before do + page.within('#modal-revert-commit') do + uncheck('create_merge_request') + click_button('Revert') + end + end + + it 'reverts a commit' do + expect(page).to have_content('The commit has been successfully reverted.') + end + + it 'does not revert a previously reverted commit' do + # Visit the comment again once it was reverted. + visit project_commit_path(project, sample_commit.id) + + find('.header-action-buttons .dropdown').click + find('a[href="#modal-revert-commit"]').click + + page.within('#modal-revert-commit') do + uncheck('create_merge_request') + click_button('Revert') + end + + expect(page).to have_content('Sorry, we cannot revert this commit automatically.') + end + end + + context 'with creating a new merge request' do + it 'reverts a commit' do + page.within('#modal-revert-commit') do + click_button('Revert') + end + + expect(page).to have_content('The commit has been successfully reverted. You can now submit a merge request to get this change into the original branch.') + expect(page).to have_content("From revert-#{Commit.truncate_sha(sample_commit.id)} into master") + end + end +end -- cgit v1.2.3