summaryrefslogtreecommitdiff
path: root/spec/features/projects
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-22 11:31:16 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-22 11:31:16 +0000
commit905c1110b08f93a19661cf42a276c7ea90d0a0ff (patch)
tree756d138db422392c00471ab06acdff92c5a9b69c /spec/features/projects
parent50d93f8d1686950fc58dda4823c4835fd0d8c14b (diff)
downloadgitlab-ce-905c1110b08f93a19661cf42a276c7ea90d0a0ff.tar.gz
Add latest changes from gitlab-org/gitlab@12-4-stable-ee
Diffstat (limited to 'spec/features/projects')
-rw-r--r--spec/features/projects/artifacts/user_browses_artifacts_spec.rb19
-rw-r--r--spec/features/projects/branches_spec.rb3
-rw-r--r--spec/features/projects/clusters/eks_spec.rb34
-rw-r--r--spec/features/projects/clusters/gcp_spec.rb2
-rw-r--r--spec/features/projects/clusters_spec.rb2
-rw-r--r--spec/features/projects/commits/user_browses_commits_spec.rb4
-rw-r--r--spec/features/projects/compare_spec.rb34
-rw-r--r--spec/features/projects/environments/environment_spec.rb18
-rw-r--r--spec/features/projects/features_visibility_spec.rb2
-rw-r--r--spec/features/projects/files/dockerfile_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/gitignore_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/project_owner_creates_license_file_spec.rb2
-rw-r--r--spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb2
-rw-r--r--spec/features/projects/files/template_type_dropdown_spec.rb20
-rw-r--r--spec/features/projects/files/undo_template_spec.rb11
-rw-r--r--spec/features/projects/import_export/export_file_spec.rb3
-rw-r--r--spec/features/projects/import_export/import_file_spec.rb3
-rw-r--r--spec/features/projects/issuable_templates_spec.rb37
-rw-r--r--spec/features/projects/jobs/permissions_spec.rb3
-rw-r--r--spec/features/projects/jobs/user_browses_job_spec.rb70
-rw-r--r--spec/features/projects/jobs_spec.rb15
-rw-r--r--spec/features/projects/members/group_members_spec.rb4
-rw-r--r--spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb4
-rw-r--r--spec/features/projects/members/master_manages_access_requests_spec.rb2
-rw-r--r--spec/features/projects/members/user_requests_access_spec.rb2
-rw-r--r--spec/features/projects/pipelines/pipeline_spec.rb10
-rw-r--r--spec/features/projects/settings/repository_settings_spec.rb13
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)