diff options
author | Rémy Coutable <remy@rymai.me> | 2018-04-06 14:40:33 +0200 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2018-04-09 18:04:09 -0500 |
commit | 2d54dfb25134cbdf5b4f506b69d13241130bc132 (patch) | |
tree | 3ba70e41da756ad6f0e9a17925ff5dd9beaa9b8c /features | |
parent | ffc9a470a8bf02d6ac97ea1bb00a0a4fab664314 (diff) | |
download | gitlab-ce-2d54dfb25134cbdf5b4f506b69d13241130bc132.tar.gz |
Migrate features/project/project.feature to RSpec and reorganize several Project feature specs
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'features')
-rw-r--r-- | features/project/project.feature | 86 | ||||
-rw-r--r-- | features/steps/project/project.rb | 154 | ||||
-rw-r--r-- | features/steps/shared/project.rb | 84 |
3 files changed, 0 insertions, 324 deletions
diff --git a/features/project/project.feature b/features/project/project.feature deleted file mode 100644 index 23817ef3ac9..00000000000 --- a/features/project/project.feature +++ /dev/null @@ -1,86 +0,0 @@ -Feature: Project - Background: - Given I sign in as a user - And I own project "Shop" - And project "Shop" has push event - And I visit project "Shop" page - - Scenario: I edit the project avatar - Given I visit edit project "Shop" page - When I change the project avatar - And I should see new project avatar - And I should see the "Remove avatar" button - - Scenario: I remove the project avatar - Given I visit edit project "Shop" page - And I have an project avatar - When I remove my project avatar - Then I should see the default project avatar - And I should not see the "Remove avatar" button - - @javascript - Scenario: I should have readme on page - And I visit project "Shop" page - Then I should see project "Shop" README - - Scenario: I should see last commit with CI - Given project "Shop" has CI enabled - Given project "Shop" has CI build - And I visit project "Shop" page - And I should see last commit with CI status - - @javascript - Scenario: I should see project activity - When I visit project "Shop" activity page - Then I should see project "Shop" activity feed - - Scenario: I visit edit project - When I visit edit project "Shop" page - Then I should see project settings - - Scenario: I edit project - When I visit edit project "Shop" page - And change project settings - And I save project - Then I should see project with new settings - - Scenario: I change project path - When I visit edit project "Shop" page - And change project path settings - Then I should see project with new path settings - - Scenario: I should change project default branch - When I visit edit project "Shop" page - And change project default branch - And I save project - Then I should see project default branch changed - - Scenario: I tag a project - When I visit edit project "Shop" page - Then I should see project settings - And I add project tags - And I save project - Then I should see project tags - - Scenario: I should not see "New Issue" or "New Merge Request" buttons - Given I disable issues and merge requests in project - When I visit project "Shop" page - Then I should not see "New Issue" button - And I should not see "New Merge Request" button - - Scenario: I should not see Project snippets - Given I disable snippets in project - When I visit project "Shop" page - Then I should not see "Snippets" button - - @javascript - Scenario: I edit Project Notifications - Given I click notifications drop down button - When I choose Mention setting - Then I should see Notification saved message - - Scenario: I should see command line instructions - Given I own an empty project - And I visit my empty project page - And I create bare repo - Then I should see command line instructions diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb deleted file mode 100644 index bba30a72325..00000000000 --- a/features/steps/project/project.rb +++ /dev/null @@ -1,154 +0,0 @@ -class Spinach::Features::Project < Spinach::FeatureSteps - include SharedAuthentication - include SharedProject - include SharedPaths - include WaitForRequests - - step 'change project settings' do - fill_in 'project_name_edit', with: 'NewName' - end - - step 'I save project' do - page.within '.general-settings' do - click_button 'Save changes' - end - end - - step 'I should see project with new settings' do - expect(find_field('project_name').value).to eq 'NewName' - end - - step 'change project path settings' do - fill_in 'project_path', with: 'new-path' - click_button 'Rename' - end - - step 'I should see project with new path settings' do - expect(project.path).to eq 'new-path' - end - - step 'I change the project avatar' do - attach_file( - :project_avatar, - File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') - ) - page.within '.general-settings' do - click_button 'Save changes' - end - @project.reload - end - - step 'I should see new project avatar' do - expect(@project.avatar).to be_instance_of AvatarUploader - url = @project.avatar.url - expect(url).to eq "/uploads/-/system/project/avatar/#{@project.id}/banana_sample.gif" - end - - step 'I should see the "Remove avatar" button' do - expect(page).to have_link('Remove avatar') - end - - step 'I have an project avatar' do - attach_file( - :project_avatar, - File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') - ) - page.within '.general-settings' do - click_button 'Save changes' - end - @project.reload - end - - step 'I remove my project avatar' do - click_link 'Remove avatar' - @project.reload - end - - step 'I should see the default project avatar' do - expect(@project.avatar?).to eq false - end - - step 'I should not see the "Remove avatar" button' do - expect(page).not_to have_link('Remove avatar') - end - - step 'change project default branch' do - select 'fix', from: 'project_default_branch' - page.within '.general-settings' do - click_button 'Save changes' - end - end - - step 'I should see project default branch changed' do - expect(find(:css, 'select#project_default_branch').value).to eq 'fix' - end - - step 'I select project "Forum" README tab' do - click_link 'Readme' - end - - step 'I should see project "Forum" README' do - page.within('.readme-holder') do - expect(page).to have_content 'Sample repo for testing gitlab features' - end - end - - step 'I should see project "Shop" README' do - wait_for_requests - page.within('.readme-holder') do - expect(page).to have_content 'testme' - end - end - - step 'I add project tags' do - fill_in 'Tags', with: 'tag1, tag2' - end - - step 'I should see project tags' do - expect(find_field('Tags').value).to eq 'tag1, tag2' - end - - step 'I should not see "New Issue" button' do - expect(page).not_to have_link 'New Issue' - end - - step 'I should not see "New Merge Request" button' do - expect(page).not_to have_link 'New Merge Request' - end - - step 'I should not see "Snippets" button' do - page.within '.content' do - expect(page).not_to have_link 'Snippets' - end - end - - step 'project "Shop" belongs to group' do - group = create(:group) - @project.namespace = group - @project.save! - end - - step 'I click notifications drop down button' do - first('.notifications-btn').click - end - - step 'I choose Mention setting' do - click_link 'On mention' - end - - step 'I should see Notification saved message' do - page.within '#notifications-button' do - expect(page).to have_content 'On mention' - end - end - - step 'I create bare repo' do - click_link 'Create empty repository' - end - - step 'I should see command line instructions' do - page.within ".empty_wrapper" do - expect(page).to have_content("Command line instructions") - end - end -end diff --git a/features/steps/shared/project.rb b/features/steps/shared/project.rb index be848ebafa0..09969a6473f 100644 --- a/features/steps/shared/project.rb +++ b/features/steps/shared/project.rb @@ -25,72 +25,6 @@ module SharedProject @project.add_master(@user) end - step 'I disable snippets in project' do - @project.snippets_enabled = false - @project.save - end - - step 'I disable issues and merge requests in project' do - @project.issues_enabled = false - @project.merge_requests_enabled = false - @project.save - end - - # Add another user to project "Shop" - step 'I add a user to project "Shop"' do - @project = Project.find_by(name: "Shop") - other_user = create(:user, name: 'Alpha') - @project.add_master(other_user) - end - - # Create another specific project called "Forum" - step 'I own project "Forum"' do - @project = Project.find_by(name: "Forum") - @project ||= create(:project, :repository, name: "Forum", namespace: @user.namespace, path: 'forum_project') - @project.build_project_feature - @project.project_feature.save - @project.add_master(@user) - end - - # Create an empty project without caring about the name - step 'I own an empty project' do - @project = create(:project, name: 'Empty Project', namespace: @user.namespace) - @project.add_master(@user) - end - - step 'I visit my empty project page' do - project = Project.find_by(name: 'Empty Project') - visit project_path(project) - end - - step 'I visit project "Shop" activity page' do - project = Project.find_by(name: 'Shop') - visit project_path(project) - end - - step 'project "Shop" has push event' do - @project = Project.find_by(name: "Shop") - @event = create(:push_event, project: @project, author: @user) - - create(:push_event_payload, - event: @event, - action: :created, - commit_to: '6d394385cf567f80a8fd85055db1ab4c5295806f', - ref: 'fix', - commit_count: 1) - end - - step 'I should see project "Shop" activity feed' do - project = Project.find_by(name: "Shop") - expect(page).to have_content "#{@user.name} pushed new branch fix at #{project.full_name}" - end - - step 'I should see project settings' do - expect(current_path).to eq edit_project_path(@project) - expect(page).to have_content("Project name") - expect(page).to have_content("Permissions") - end - def current_project @project ||= Project.first end @@ -206,24 +140,6 @@ module SharedProject create(:label, project: project, title: 'enhancement') end - step 'project "Shop" has CI enabled' do - project = Project.find_by(name: "Shop") - project.enable_ci - end - - step 'project "Shop" has CI build' do - project = Project.find_by(name: "Shop") - pipeline = create :ci_pipeline, project: project, sha: project.commit.sha, ref: 'master' - pipeline.skip - end - - step 'I should see last commit with CI status' do - page.within ".blob-commit-info" do - expect(page).to have_content(project.commit.sha[0..6]) - expect(page).to have_link("Commit: skipped") - end - end - step 'The project is internal' do @project.update(visibility_level: Gitlab::VisibilityLevel::INTERNAL) end |