diff options
Diffstat (limited to 'spec/features/projects')
28 files changed, 199 insertions, 126 deletions
diff --git a/spec/features/projects/artifacts/user_browses_artifacts_spec.rb b/spec/features/projects/artifacts/user_browses_artifacts_spec.rb index ecc07181d09..d8c6ef4755d 100644 --- a/spec/features/projects/artifacts/user_browses_artifacts_spec.rb +++ b/spec/features/projects/artifacts/user_browses_artifacts_spec.rb @@ -114,5 +114,24 @@ describe "User browses artifacts" do it { expect(page).to have_link("doc_sample.txt").and have_no_selector(".js-artifact-tree-external-icon") } end + + context "when the project is private and pages access control is enabled" do + let!(:private_project) { create(:project, :private) } + let(:pipeline) { create(:ci_empty_pipeline, project: private_project) } + let(:job) { create(:ci_build, :artifacts, pipeline: pipeline) } + let(:user) { create(:user) } + + before do + private_project.add_developer(user) + + allow(Gitlab.config.pages).to receive(:access_control).and_return(true) + + sign_in(user) + + visit(browse_project_job_artifacts_path(private_project, job, "other_artifacts_0.1.2")) + end + + it { expect(page).to have_link("doc_sample.txt").and have_selector(".js-artifact-tree-external-icon") } + end end end diff --git a/spec/features/projects/branches_spec.rb b/spec/features/projects/branches_spec.rb index b35067d0f4d..9dc0f7c90c2 100644 --- a/spec/features/projects/branches_spec.rb +++ b/spec/features/projects/branches_spec.rb @@ -101,7 +101,7 @@ describe 'Branches' do visit project_branches_filtered_path(project, state: 'all') expect(all('.all-branches').last).to have_selector('li', count: 20) - accept_confirm { find('.js-branch-add-pdf-text-binary .btn-remove').click } + accept_confirm { first('.js-branch-item .btn-remove').click } expect(all('.all-branches').last).to have_selector('li', count: 19) end @@ -246,7 +246,6 @@ describe 'Branches' do end expect(page).to have_content 'Commits' - expect(page).to have_link 'Create merge request' end end diff --git a/spec/features/projects/clusters/eks_spec.rb b/spec/features/projects/clusters/eks_spec.rb new file mode 100644 index 00000000000..758dccd6e49 --- /dev/null +++ b/spec/features/projects/clusters/eks_spec.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'AWS EKS Cluster', :js do + let(:project) { create(:project) } + let(:user) { create(:user) } + + before do + project.add_maintainer(user) + gitlab_sign_in(user) + allow(Projects::ClustersController).to receive(:STATUS_POLLING_INTERVAL) { 100 } + end + + context 'when user does not have a cluster and visits cluster index page' do + let(:project_id) { 'test-project-1234' } + + before do + visit project_clusters_path(project) + + click_link 'Add Kubernetes cluster' + end + + context 'when user creates a cluster on AWS EKS' do + before do + click_link 'Amazon EKS' + end + + it 'user sees a form to create an EKS cluster' do + expect(page).to have_selector(:css, '.js-create-eks-cluster') + end + end + end +end diff --git a/spec/features/projects/clusters/gcp_spec.rb b/spec/features/projects/clusters/gcp_spec.rb index a11237db508..b5ab9faa14b 100644 --- a/spec/features/projects/clusters/gcp_spec.rb +++ b/spec/features/projects/clusters/gcp_spec.rb @@ -177,6 +177,7 @@ describe 'Gcp Cluster', :js do context 'when user has not dismissed GCP signup offer' do before do + stub_feature_flags(create_eks_clusters: false) visit project_clusters_path(project) end @@ -200,6 +201,7 @@ describe 'Gcp Cluster', :js do context 'when user has dismissed GCP signup offer' do before do + stub_feature_flags(create_eks_clusters: false) visit project_clusters_path(project) end diff --git a/spec/features/projects/clusters_spec.rb b/spec/features/projects/clusters_spec.rb index d1cd19dff2d..67d14d0a58a 100644 --- a/spec/features/projects/clusters_spec.rb +++ b/spec/features/projects/clusters_spec.rb @@ -74,7 +74,7 @@ describe 'Clusters', :js do visit project_clusters_path(project) click_link 'Add Kubernetes cluster' - click_link 'Create new Cluster on GKE' + click_link 'Create new Cluster' end it 'user sees a link to create a GKE cluster' do diff --git a/spec/features/projects/commits/user_browses_commits_spec.rb b/spec/features/projects/commits/user_browses_commits_spec.rb index 085d8d63d52..131d9097f48 100644 --- a/spec/features/projects/commits/user_browses_commits_spec.rb +++ b/spec/features/projects/commits/user_browses_commits_spec.rb @@ -93,13 +93,13 @@ describe 'User browses commits' do context 'when the blob does not exist' do let(:commit) { create(:commit, project: project) } - it 'shows a blank label' do + it 'renders successfully' do allow_any_instance_of(Gitlab::Diff::File).to receive(:blob).and_return(nil) allow_any_instance_of(Gitlab::Diff::File).to receive(:binary?).and_return(true) visit(project_commit_path(project, commit)) - expect(find('.diff-file-changes', visible: false)).to have_content('No file name available') + expect(find('.diff-file-changes', visible: false)).to have_content('files/ruby/popen.rb') end end diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb index 2674617bcfc..34bde29c8da 100644 --- a/spec/features/projects/compare_spec.rb +++ b/spec/features/projects/compare_spec.rb @@ -12,6 +12,23 @@ describe "Compare", :js do end describe "branches" do + shared_examples 'compares branches' do + it 'compares branches' do + visit project_compare_index_path(project, from: 'master', to: 'master') + + select_using_dropdown 'from', 'feature' + expect(find('.js-compare-from-dropdown .dropdown-toggle-text')).to have_content('feature') + + select_using_dropdown 'to', 'binary-encoding' + expect(find('.js-compare-to-dropdown .dropdown-toggle-text')).to have_content('binary-encoding') + + click_button 'Compare' + + expect(page).to have_content 'Commits' + expect(page).to have_link 'Create merge request' + end + end + it "pre-populates fields" do visit project_compare_index_path(project, from: "master", to: "master") @@ -19,19 +36,14 @@ describe "Compare", :js do expect(find(".js-compare-to-dropdown .dropdown-toggle-text")).to have_content("master") end - it "compares branches" do - visit project_compare_index_path(project, from: "master", to: "master") - - select_using_dropdown "from", "feature" - expect(find(".js-compare-from-dropdown .dropdown-toggle-text")).to have_content("feature") - - select_using_dropdown "to", "binary-encoding" - expect(find(".js-compare-to-dropdown .dropdown-toggle-text")).to have_content("binary-encoding") + it_behaves_like 'compares branches' - click_button "Compare" + context 'on a read-only instance' do + before do + allow(Gitlab::Database).to receive(:read_only?).and_return(true) + end - expect(page).to have_content "Commits" - expect(page).to have_link 'Create merge request' + it_behaves_like 'compares branches' end it 'renders additions info when click unfold diff' do diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb index 497880a7835..dd690699ff6 100644 --- a/spec/features/projects/environments/environment_spec.rb +++ b/spec/features/projects/environments/environment_spec.rb @@ -66,8 +66,8 @@ describe 'Environment' do create(:deployment, :running, environment: environment, deployable: build) end - it 'does not show deployments' do - expect(page).to have_content('You don\'t have any deployments right now.') + it 'does show deployments' do + expect(page).to have_link("#{build.name} (##{build.id})") end end @@ -79,8 +79,8 @@ describe 'Environment' do create(:deployment, :failed, environment: environment, deployable: build) end - it 'does not show deployments' do - expect(page).to have_content('You don\'t have any deployments right now.') + it 'does show deployments' do + expect(page).to have_link("#{build.name} (##{build.id})") end end @@ -175,7 +175,7 @@ describe 'Environment' do # # In EE we have to stub EE::Environment since it overwrites # the "terminals" method. - allow_any_instance_of(defined?(EE) ? EE::Environment : Environment) + allow_any_instance_of(Gitlab.ee? ? EE::Environment : Environment) .to receive(:terminals) { nil } visit terminal_project_environment_path(project, environment) @@ -304,9 +304,11 @@ describe 'Environment' do # def remove_branch_with_hooks(project, user, branch) params = { - oldrev: project.commit(branch).id, - newrev: Gitlab::Git::BLANK_SHA, - ref: "refs/heads/#{branch}" + change: { + oldrev: project.commit(branch).id, + newrev: Gitlab::Git::BLANK_SHA, + ref: "refs/heads/#{branch}" + } } yield diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb index 531592ffd65..9ec61743a11 100644 --- a/spec/features/projects/features_visibility_spec.rb +++ b/spec/features/projects/features_visibility_spec.rb @@ -211,7 +211,7 @@ describe 'Edit Project Settings' do visit activity_project_path(project) page.within(".event-filter") do - expect(page).to have_selector("a", count: 2) + expect(page).to have_content("All") expect(page).not_to have_content("Push events") expect(page).not_to have_content("Merge events") expect(page).not_to have_content("Comments") diff --git a/spec/features/projects/files/dockerfile_dropdown_spec.rb b/spec/features/projects/files/dockerfile_dropdown_spec.rb index 2e0c589e168..756f2f2d493 100644 --- a/spec/features/projects/files/dockerfile_dropdown_spec.rb +++ b/spec/features/projects/files/dockerfile_dropdown_spec.rb @@ -23,7 +23,7 @@ describe 'Projects > Files > User wants to add a Dockerfile file' do wait_for_requests - expect(page).to have_css('.dockerfile-selector .dropdown-toggle-text', text: 'HTTPd') + expect(page).to have_css('.dockerfile-selector .dropdown-toggle-text', text: 'Apply a template') expect(page).to have_content('COPY ./ /usr/local/apache2/htdocs/') end end diff --git a/spec/features/projects/files/gitignore_dropdown_spec.rb b/spec/features/projects/files/gitignore_dropdown_spec.rb index dcb960b880a..a8c6e780d47 100644 --- a/spec/features/projects/files/gitignore_dropdown_spec.rb +++ b/spec/features/projects/files/gitignore_dropdown_spec.rb @@ -23,7 +23,7 @@ describe 'Projects > Files > User wants to add a .gitignore file' do wait_for_requests - expect(page).to have_css('.gitignore-selector .dropdown-toggle-text', text: 'Rails') + expect(page).to have_css('.gitignore-selector .dropdown-toggle-text', text: 'Apply a template') expect(page).to have_content('/.bundle') expect(page).to have_content('# Gemfile.lock, .ruby-version, .ruby-gemset') end diff --git a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb index 875ae5d34d1..107d426a893 100644 --- a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb +++ b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb @@ -23,7 +23,7 @@ describe 'Projects > Files > User wants to add a .gitlab-ci.yml file' do wait_for_requests - expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Jekyll') + expect(page).to have_css('.gitlab-ci-yml-selector .dropdown-toggle-text', text: 'Apply a template') expect(page).to have_content('This file is a template, and might need editing before it works on your project') expect(page).to have_content('jekyll build -d test') end diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb index 2944089358f..943c6e0e959 100644 --- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb +++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb @@ -64,7 +64,7 @@ describe 'Projects > Files > Project owner creates a license file', :js do def select_template(template) page.within('.js-license-selector-wrap') do - click_button 'Apply a license template' + click_button 'Apply a template' click_link template wait_for_requests end diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb index 556b7227403..9f63b312146 100644 --- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb +++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb @@ -37,7 +37,7 @@ describe 'Projects > Files > Project owner sees a link to create a license file def select_template(template) page.within('.js-license-selector-wrap') do - click_button 'Apply a license template' + click_button 'Apply a template' click_link template wait_for_requests end diff --git a/spec/features/projects/files/template_type_dropdown_spec.rb b/spec/features/projects/files/template_type_dropdown_spec.rb index 8b385185e2e..ba52a7e7deb 100644 --- a/spec/features/projects/files/template_type_dropdown_spec.rb +++ b/spec/features/projects/files/template_type_dropdown_spec.rb @@ -24,8 +24,9 @@ describe 'Projects > Files > Template type dropdown selector', :js do try_selecting_all_types end - it 'updates toggle value when input matches' do + it 'updates template type toggle value when template is chosen' do fill_in 'file_path', with: '.gitignore' + select_template('gitignore', 'Actionscript') check_type_selector_toggle_text('.gitignore') end end @@ -70,6 +71,7 @@ describe 'Projects > Files > Template type dropdown selector', :js do end it 'toggle is set to the correct value' do + select_template('gitignore', 'Actionscript') check_type_selector_toggle_text('.gitignore') end @@ -88,7 +90,7 @@ describe 'Projects > Files > Template type dropdown selector', :js do end it 'toggle is set to the proper value' do - check_type_selector_toggle_text('Choose type') + check_type_selector_toggle_text('Select a template type') end it 'selects every template type correctly' do @@ -103,16 +105,15 @@ def check_type_selector_display(is_visible) end def try_selecting_all_types - try_selecting_template_type('LICENSE', 'Apply a license template') - try_selecting_template_type('Dockerfile', 'Apply a Dockerfile template') - try_selecting_template_type('.gitlab-ci.yml', 'Apply a GitLab CI Yaml template') - try_selecting_template_type('.gitignore', 'Apply a .gitignore template') + try_selecting_template_type('LICENSE', 'Apply a template') + try_selecting_template_type('Dockerfile', 'Apply a template') + try_selecting_template_type('.gitlab-ci.yml', 'Apply a template') + try_selecting_template_type('.gitignore', 'Apply a template') end def try_selecting_template_type(template_type, selector_label) select_template_type(template_type) check_template_selector_display(selector_label) - check_type_selector_toggle_text(template_type) end def select_template_type(template_type) @@ -120,6 +121,11 @@ def select_template_type(template_type) find('.dropdown-content li', text: template_type).click end +def select_template(type, template) + find(".js-#{type}-selector-wrap").click + find('.dropdown-content li', text: template).click +end + def check_template_selector_display(content) expect(page).to have_content(content) end diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb index d3f8d36a0a9..887214e1dbf 100644 --- a/spec/features/projects/files/undo_template_spec.rb +++ b/spec/features/projects/files/undo_template_spec.rb @@ -13,11 +13,12 @@ describe 'Projects > Files > Template Undo Button', :js do context 'editing a matching file and applying a template' do before do visit project_edit_blob_path(project, File.join(project.default_branch, "LICENSE")) + select_file_template_type('LICENSE') select_file_template('.js-license-selector', 'Apache License 2.0') end it 'reverts template application' do - try_template_undo('http://www.apache.org/licenses/', 'Apply a license template') + try_template_undo('http://www.apache.org/licenses/', 'Apply a template') end end @@ -29,7 +30,7 @@ describe 'Projects > Files > Template Undo Button', :js do end it 'reverts template application' do - try_template_undo('http://www.apache.org/licenses/', 'Apply a license template') + try_template_undo('http://www.apache.org/licenses/', 'Apply a template') end end end @@ -45,12 +46,12 @@ def check_toggle_text_set(neutral_toggle_text) end def check_undo_button_display - expect(page).to have_content('Template applied') - expect(page).to have_css('.template-selectors-undo-menu .btn-info') + expect(page).to have_content('template applied') + expect(page).to have_css('.toasted-container') end def check_content_reverted(template_content) - find('.template-selectors-undo-menu .btn-info').click + find('.toasted-container a', text: 'Undo').click expect(page).not_to have_content(template_content) expect(page).to have_css('.template-type-selector .dropdown-toggle-text') end diff --git a/spec/features/projects/import_export/export_file_spec.rb b/spec/features/projects/import_export/export_file_spec.rb index a1002f38936..7618a2bdea3 100644 --- a/spec/features/projects/import_export/export_file_spec.rb +++ b/spec/features/projects/import_export/export_file_spec.rb @@ -49,8 +49,7 @@ describe 'Import/Export - project export integration test', :js do expect(page).to have_content('Download export') - expect(file_permissions(project.export_path)).to eq(0700) - + expect(project.export_status).to eq(:finished) expect(project.export_file.path).to include('tar.gz') in_directory_with_expanded_export(project) do |exit_status, tmpdir| diff --git a/spec/features/projects/import_export/import_file_spec.rb b/spec/features/projects/import_export/import_file_spec.rb index a12fc8b18ed..6f96da60a31 100644 --- a/spec/features/projects/import_export/import_file_spec.rb +++ b/spec/features/projects/import_export/import_file_spec.rb @@ -3,7 +3,6 @@ require 'spec_helper' describe 'Import/Export - project import integration test', :js do - include Select2Helper include GitHelpers let(:user) { create(:user) } @@ -31,7 +30,6 @@ describe 'Import/Export - project import integration test', :js do it 'user imports an exported project successfully' do visit new_project_path - select2(namespace.id, from: '#project_namespace_id') fill_in :project_name, with: project_name, visible: true click_import_project_tab click_link 'GitLab export' @@ -78,7 +76,6 @@ describe 'Import/Export - project import integration test', :js do visit new_project_path - select2(user.namespace.id, from: '#project_namespace_id') fill_in :project_name, with: project.name, visible: true click_import_project_tab click_link 'GitLab export' diff --git a/spec/features/projects/issuable_templates_spec.rb b/spec/features/projects/issuable_templates_spec.rb index 18eadb7c4a3..4b6f1672f08 100644 --- a/spec/features/projects/issuable_templates_spec.rb +++ b/spec/features/projects/issuable_templates_spec.rb @@ -92,6 +92,9 @@ describe 'issuable templates', :js do context 'user creates a merge request using templates' do let(:template_content) { 'this is a test "feature-proposal" template' } + let(:bug_template_content) { 'this is merge request bug template' } + let(:template_override_warning) { 'Applying a template will replace the existing issue description.' } + let(:updated_description) { 'updated merge request description' } let(:merge_request) { create(:merge_request, :with_diffs, source_project: project) } before do @@ -101,6 +104,12 @@ describe 'issuable templates', :js do template_content, message: 'added merge request template', branch_name: 'master') + project.repository.create_file( + user, + '.gitlab/merge_request_templates/bug.md', + bug_template_content, + message: 'added merge request bug template', + branch_name: 'master') visit edit_project_merge_request_path project, merge_request fill_in :'merge_request[title]', with: 'test merge request title' end @@ -111,6 +120,34 @@ describe 'issuable templates', :js do assert_template save_changes end + + context 'changes template' do + before do + select_template 'bug' + wait_for_requests + fill_in :'merge_request[description]', with: updated_description + select_template 'feature-proposal' + expect(page).to have_content template_override_warning + end + + it 'user selects "bug" template, then updates description, then selects "feature-proposal" template, then cancels template change' do + page.find('.js-template-warning .js-close-btn.js-cancel-btn').click + expect(find('textarea')['value']).to eq(updated_description) + expect(page).not_to have_content template_override_warning + end + + it 'user selects "bug" template, then updates description, then selects "feature-proposal" template, then dismiss the template warning' do + page.find('.js-template-warning .js-close-btn.js-dismiss-btn').click + expect(find('textarea')['value']).to eq(updated_description) + expect(page).not_to have_content template_override_warning + end + + it 'user selects "bug" template, then updates description, then selects "feature-proposal" template, then applies template change' do + page.find('.js-template-warning .js-override-template').click + wait_for_requests + assert_template + end + end end context 'user creates a merge request from a forked project using templates' do diff --git a/spec/features/projects/jobs/permissions_spec.rb b/spec/features/projects/jobs/permissions_spec.rb index 44309a9c4bf..ae506b66a86 100644 --- a/spec/features/projects/jobs/permissions_spec.rb +++ b/spec/features/projects/jobs/permissions_spec.rb @@ -10,6 +10,7 @@ describe 'Project Jobs Permissions' do let!(:job) { create(:ci_build, :running, :coverage, :trace_artifact, pipeline: pipeline) } before do + stub_feature_flags(job_log_json: true) sign_in(user) project.enable_ci @@ -69,7 +70,7 @@ describe 'Project Jobs Permissions' do it_behaves_like 'recent job page details responds with status', 200 do it 'renders job details', :js do expect(page).to have_content "Job ##{job.id}" - expect(page).to have_css '.js-build-trace' + expect(page).to have_css '.log-line' end end diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb index 4d8a4812123..856c39df8b3 100644 --- a/spec/features/projects/jobs/user_browses_job_spec.rb +++ b/spec/features/projects/jobs/user_browses_job_spec.rb @@ -38,86 +38,26 @@ describe 'User browses a job', :js do expect(page).to have_content('Job has been erased') end - shared_examples 'has collapsible sections' do - it 'collapses the section clicked' do - wait_for_requests - text_to_hide = "Cloning into '/nolith/ci-tests'" - text_to_show = 'Waiting for pod' - - expect(page).to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - - first('.js-section-start[data-section="get-sources"]').click - - expect(page).not_to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - end - - it 'collapses the section header clicked' do - wait_for_requests - text_to_hide = "Cloning into '/nolith/ci-tests'" - text_to_show = 'Waiting for pod' - - expect(page).to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - - first('.js-section-header.js-s-get-sources').click - - expect(page).not_to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - end - end - - context 'when job trace contains sections' do - let!(:build) { create(:ci_build, :success, :trace_with_sections, :coverage, pipeline: pipeline) } - - it_behaves_like 'has collapsible sections' - end - - context 'when job trace contains duplicate sections' do - let!(:build) { create(:ci_build, :success, :trace_with_duplicate_sections, :coverage, pipeline: pipeline) } - - it_behaves_like 'has collapsible sections' - end - - context 'when job trace contains sections' do - let!(:build) { create(:ci_build, :success, :trace_with_duplicate_sections, :coverage, pipeline: pipeline) } - - it 'collapses a section' do - wait_for_requests - text_to_hide = "Cloning into '/nolith/ci-tests'" - text_to_show = 'Waiting for pod' - - expect(page).to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - - first('.js-section-start[data-section="get-sources"]').click - - expect(page).not_to have_content(text_to_hide) - expect(page).to have_content(text_to_show) - end - end - context 'with a failed job' do let!(:build) { create(:ci_build, :failed, :trace_artifact, pipeline: pipeline) } it 'displays the failure reason' do wait_for_all_requests within('.builds-container') do - build_link = first('.build-job > a') - expect(build_link['data-original-title']).to eq('test - failed - (unknown failure)') + expect(page).to have_selector( + ".build-job > a[data-original-title='test - failed - (unknown failure)']") end end end context 'when a failed job has been retried' do - let!(:build) { create(:ci_build, :failed, :retried, :trace_artifact, pipeline: pipeline) } + let!(:build_retried) { create(:ci_build, :failed, :retried, :trace_artifact, pipeline: pipeline) } it 'displays the failure reason and retried label' do wait_for_all_requests within('.builds-container') do - build_link = first('.build-job > a') - expect(build_link['data-original-title']).to eq('test - failed - (unknown failure) (retried)') + expect(page).to have_selector( + ".build-job > a[data-original-title='test - failed - (unknown failure) (retried)']") end end end diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb index cebca338f33..f5d5bc7f5b9 100644 --- a/spec/features/projects/jobs_spec.rb +++ b/spec/features/projects/jobs_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'spec_helper' require 'tempfile' @@ -424,8 +426,8 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do it 'loads job trace' do expect(page).to have_content 'BUILD TRACE' - job.trace.write('a+b') do |stream| - stream.append(' and more trace', 11) + job.trace.write(+'a+b') do |stream| + stream.append(+' and more trace', 11) end expect(page).to have_content 'BUILD TRACE and more trace' @@ -534,7 +536,7 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do end it 'shows deployment message' do - expect(page).to have_content 'This job is the most recent deployment to production' + expect(page).to have_content 'This job is deployed to production' expect(find('.js-environment-link')['href']).to match("environments/#{environment.id}") end @@ -548,14 +550,14 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do end it 'shows the name of the cluster' do - expect(page).to have_content 'Cluster the-cluster was used' + expect(page).to have_content 'using cluster the-cluster' end context 'when the user is not able to view the cluster' do let(:user_access_level) { :developer } it 'includes only the name of the cluster without a link' do - expect(page).to have_content 'Cluster the-cluster was used' + expect(page).to have_content 'using cluster the-cluster' expect(page).not_to have_link 'the-cluster' end end @@ -623,8 +625,7 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do let!(:second_deployment) { create(:deployment, :success, environment: environment, deployable: second_build) } it 'shows deployment message' do - expected_text = 'This job is an out-of-date deployment ' \ - "to staging. View the most recent deployment ##{second_deployment.iid}." + expected_text = 'This job is an out-of-date deployment to staging. View the most recent deployment.' expect(page).to have_css('.environment-information', text: expected_text) end diff --git a/spec/features/projects/members/group_members_spec.rb b/spec/features/projects/members/group_members_spec.rb index dd5fc82e058..4ecc3db78b3 100644 --- a/spec/features/projects/members/group_members_spec.rb +++ b/spec/features/projects/members/group_members_spec.rb @@ -5,8 +5,8 @@ require 'spec_helper' describe 'Projects members' do let(:user) { create(:user) } let(:developer) { create(:user) } - let(:group) { create(:group, :public, :access_requestable) } - let(:project) { create(:project, :public, :access_requestable, creator: user, group: group) } + let(:group) { create(:group, :public) } + let(:project) { create(:project, :public, creator: user, group: group) } let(:project_invitee) { create(:project_member, project: project, invite_token: '123', invite_email: 'test1@abc.com', user: nil) } let(:group_invitee) { create(:group_member, group: group, invite_token: '123', invite_email: 'test2@abc.com', user: nil) } let(:project_requester) { create(:user) } diff --git a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb index fb4238f0a1f..ecd55f71c84 100644 --- a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb +++ b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb @@ -5,8 +5,8 @@ require 'spec_helper' describe 'Projects > Members > Group requester cannot request access to project', :js do let(:user) { create(:user) } let(:owner) { create(:user) } - let(:group) { create(:group, :public, :access_requestable) } - let(:project) { create(:project, :public, :access_requestable, namespace: group) } + let(:group) { create(:group, :public) } + let(:project) { create(:project, :public, namespace: group) } before do group.add_owner(owner) diff --git a/spec/features/projects/members/master_manages_access_requests_spec.rb b/spec/features/projects/members/master_manages_access_requests_spec.rb index 17d6efbcaa5..f113fb643f8 100644 --- a/spec/features/projects/members/master_manages_access_requests_spec.rb +++ b/spec/features/projects/members/master_manages_access_requests_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe 'Projects > Members > Maintainer manages access requests' do it_behaves_like 'Maintainer manages access requests' do - let(:entity) { create(:project, :public, :access_requestable) } + let(:entity) { create(:project, :public) } let(:members_page_path) { project_project_members_path(entity) } end end diff --git a/spec/features/projects/members/user_requests_access_spec.rb b/spec/features/projects/members/user_requests_access_spec.rb index 9f7327cd6e4..a77f0bdcbe9 100644 --- a/spec/features/projects/members/user_requests_access_spec.rb +++ b/spec/features/projects/members/user_requests_access_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe 'Projects > Members > User requests access', :js do let(:user) { create(:user) } - let(:project) { create(:project, :public, :access_requestable, :repository) } + let(:project) { create(:project, :public, :repository) } let(:maintainer) { project.owner } before do diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb index 9759fd04ad2..04adb1ec6af 100644 --- a/spec/features/projects/pipelines/pipeline_spec.rb +++ b/spec/features/projects/pipelines/pipeline_spec.rb @@ -98,6 +98,16 @@ describe 'Pipeline', :js do end end + it 'shows links to the related merge requests' do + visit_pipeline + + within '.related-merge-request-info' do + pipeline.all_merge_requests.map do |merge_request| + expect(page).to have_link(project_merge_request_path(project, merge_request)) + end + end + end + it_behaves_like 'showing user status' do let(:user_with_status) { pipeline.user } diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index 1294c8822b6..18031a40f15 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -66,6 +66,19 @@ describe 'Projects > Settings > Repository settings' do expect(page).to have_content('Write access allowed') end + it 'edit an existing public deploy key to be writable' do + project.deploy_keys << public_deploy_key + visit project_settings_repository_path(project) + + find('.deploy-key', text: public_deploy_key.title).find('.ic-pencil').click + + check 'deploy_key_deploy_keys_projects_attributes_0_can_push' + click_button 'Save changes' + + expect(page).to have_content('public_deploy_key') + expect(page).to have_content('Write access allowed') + end + it 'edit a deploy key from projects user has access to' do project2 = create(:project_empty_repo) project2.add_role(user, role) |