Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-02-18 12:45:46 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-02-18 12:45:46 +0300
commita7b3560714b4d9cc4ab32dffcd1f74a284b93580 (patch)
tree7452bd5c3545c2fa67a28aa013835fb4fa071baf /spec/presenters
parentee9173579ae56a3dbfe5afe9f9410c65bb327ca7 (diff)
Add latest changes from gitlab-org/gitlab@14-8-stable-eev14.8.0-rc42
Diffstat (limited to 'spec/presenters')
-rw-r--r--spec/presenters/blob_presenter_spec.rb65
-rw-r--r--spec/presenters/blobs/unfold_presenter_spec.rb8
-rw-r--r--spec/presenters/clusterable_presenter_spec.rb24
-rw-r--r--spec/presenters/packages/conan/package_presenter_spec.rb19
-rw-r--r--spec/presenters/packages/detail/package_presenter_spec.rb8
-rw-r--r--spec/presenters/packages/npm/package_presenter_spec.rb11
-rw-r--r--spec/presenters/packages/nuget/package_metadata_presenter_spec.rb8
-rw-r--r--spec/presenters/packages/pypi/package_presenter_spec.rb8
-rw-r--r--spec/presenters/projects/security/configuration_presenter_spec.rb3
9 files changed, 96 insertions, 58 deletions
diff --git a/spec/presenters/blob_presenter_spec.rb b/spec/presenters/blob_presenter_spec.rb
index 3bf592ed2b9..225386d9596 100644
--- a/spec/presenters/blob_presenter_spec.rb
+++ b/spec/presenters/blob_presenter_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe BlobPresenter do
let_it_be(:project) { create(:project, :repository) }
- let_it_be(:user) { project.owner }
+ let_it_be(:user) { project.first_owner }
let(:repository) { project.repository }
let(:blob) { repository.blob_at('HEAD', 'files/ruby/regex.rb') }
@@ -87,6 +87,33 @@ RSpec.describe BlobPresenter do
it { expect(presenter.permalink_path).to eq("/#{project.full_path}/-/blob/#{project.repository.commit.sha}/files/ruby/regex.rb") }
end
+ context 'environment has been deployed' do
+ let(:external_url) { "https://some.environment" }
+ let(:environment) { create(:environment, project: project, external_url: external_url) }
+ let!(:deployment) { create(:deployment, :success, environment: environment, project: project, sha: blob.commit_id) }
+
+ before do
+ allow(project).to receive(:public_path_for_source_path).with(blob.path, blob.commit_id).and_return(blob.path)
+ end
+
+ describe '#environment_formatted_external_url' do
+ it { expect(presenter.environment_formatted_external_url).to eq("some.environment") }
+ end
+
+ describe '#environment_external_url_for_route_map' do
+ it { expect(presenter.environment_external_url_for_route_map).to eq("#{external_url}/#{blob.path}") }
+ end
+
+ describe 'chooses the latest deployed environment for #environment_formatted_external_url and #environment_external_url_for_route_map' do
+ let(:another_external_url) { "https://another.environment" }
+ let(:another_environment) { create(:environment, project: project, external_url: another_external_url) }
+ let!(:another_deployment) { create(:deployment, :success, environment: another_environment, project: project, sha: blob.commit_id) }
+
+ it { expect(presenter.environment_formatted_external_url).to eq("another.environment") }
+ it { expect(presenter.environment_external_url_for_route_map).to eq("#{another_external_url}/#{blob.path}") }
+ end
+ end
+
describe '#code_owners' do
it { expect(presenter.code_owners).to match_array([]) }
end
@@ -143,13 +170,13 @@ RSpec.describe BlobPresenter do
let(:git_blob) { blob.__getobj__ }
it 'returns highlighted content' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: nil)
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby')
presenter.highlight
end
it 'returns plain content when :plain is true' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: true, language: nil)
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: true, language: 'ruby')
presenter.highlight(plain: true)
end
@@ -162,7 +189,7 @@ RSpec.describe BlobPresenter do
end
it 'returns limited highlighted content' do
- expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "line one\n", plain: nil, language: nil)
+ expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "line one\n", plain: nil, language: 'ruby')
presenter.highlight(to: 1)
end
@@ -220,6 +247,36 @@ RSpec.describe BlobPresenter do
end
end
+ describe '#blob_language' do
+ subject { presenter.blob_language }
+
+ it { is_expected.to eq('ruby') }
+
+ context 'gitlab-language contains a match' do
+ before do
+ allow(blob).to receive(:language_from_gitattributes).and_return('cpp')
+ end
+
+ it { is_expected.to eq('cpp') }
+ end
+
+ context 'when blob is ipynb' do
+ let(:blob) { repository.blob_at('f6b7a707', 'files/ipython/markdown-table.ipynb') }
+
+ before do
+ allow(Gitlab::Diff::CustomDiff).to receive(:transformed_for_diff?).and_return(true)
+ end
+
+ it { is_expected.to eq('md') }
+ end
+
+ context 'when blob is binary' do
+ let(:blob) { repository.blob_at('HEAD', 'Gemfile.zip') }
+
+ it { is_expected.to be_nil }
+ end
+ end
+
describe '#raw_plain_data' do
let(:blob) { repository.blob_at('HEAD', file) }
diff --git a/spec/presenters/blobs/unfold_presenter_spec.rb b/spec/presenters/blobs/unfold_presenter_spec.rb
index 4e9f83e8001..14c36461e90 100644
--- a/spec/presenters/blobs/unfold_presenter_spec.rb
+++ b/spec/presenters/blobs/unfold_presenter_spec.rb
@@ -206,6 +206,14 @@ RSpec.describe Blobs::UnfoldPresenter do
end
end
+ context 'when since exceeds number of lines' do
+ let(:params) { { since: 2 } }
+
+ it 'returns an empty list' do
+ expect(subject.lines.size).to eq(0)
+ end
+ end
+
context 'when full is true' do
let(:params) { { full: true } }
diff --git a/spec/presenters/clusterable_presenter_spec.rb b/spec/presenters/clusterable_presenter_spec.rb
index d19abd4e4d8..7c2e19728d5 100644
--- a/spec/presenters/clusterable_presenter_spec.rb
+++ b/spec/presenters/clusterable_presenter_spec.rb
@@ -79,6 +79,30 @@ RSpec.describe ClusterablePresenter do
end
end
+ describe '#can_admin_cluster?' do
+ let(:user) { create(:user) }
+
+ subject { described_class.new(clusterable).can_admin_cluster? }
+
+ before do
+ clusterable.add_maintainer(user)
+
+ allow(clusterable).to receive(:current_user).and_return(user)
+ end
+
+ context 'when clusterable is a group' do
+ let(:clusterable) { create(:group) }
+
+ it_behaves_like 'appropriate member permissions'
+ end
+
+ context 'when clusterable is a project' do
+ let(:clusterable) { create(:project, :repository) }
+
+ it_behaves_like 'appropriate member permissions'
+ end
+ end
+
describe '#environments_cluster_path' do
subject { described_class.new(clusterable).environments_cluster_path(cluster) }
diff --git a/spec/presenters/packages/conan/package_presenter_spec.rb b/spec/presenters/packages/conan/package_presenter_spec.rb
index 27ecf32b6f2..d35137cd820 100644
--- a/spec/presenters/packages/conan/package_presenter_spec.rb
+++ b/spec/presenters/packages/conan/package_presenter_spec.rb
@@ -6,6 +6,7 @@ RSpec.describe ::Packages::Conan::PackagePresenter do
let_it_be(:user) { create(:user) }
let_it_be(:package) { create(:conan_package) }
let_it_be(:project) { package.project }
+ let_it_be(:package_file_pending_destruction) { create(:package_file, :pending_destruction, package: package) }
let_it_be(:conan_package_reference) { '123456789'}
let(:params) { { package_scope: :instance } }
@@ -208,22 +209,4 @@ RSpec.describe ::Packages::Conan::PackagePresenter do
end
end
end
-
- # TODO when cleaning up packages_installable_package_files, consider removing this context and
- # add a dummy package file pending destruction on L8
- context 'with package files pending destruction' do
- let_it_be(:package_file_pending_destruction) { create(:package_file, :pending_destruction, package: package) }
-
- subject { presenter.send(:package_files).to_a }
-
- it { is_expected.not_to include(package_file_pending_destruction) }
-
- context 'with packages_installable_package_files disabled' do
- before do
- stub_feature_flags(packages_installable_package_files: false)
- end
-
- it { is_expected.to include(package_file_pending_destruction) }
- end
- end
end
diff --git a/spec/presenters/packages/detail/package_presenter_spec.rb b/spec/presenters/packages/detail/package_presenter_spec.rb
index 4e2645b27ff..71ec3ee2d67 100644
--- a/spec/presenters/packages/detail/package_presenter_spec.rb
+++ b/spec/presenters/packages/detail/package_presenter_spec.rb
@@ -161,14 +161,6 @@ RSpec.describe ::Packages::Detail::PackagePresenter do
subject { presenter.detail_view[:package_files].map { |e| e[:id] } }
it { is_expected.not_to include(package_file_pending_destruction.id) }
-
- context 'with packages_installable_package_files disabled' do
- before do
- stub_feature_flags(packages_installable_package_files: false)
- end
-
- it { is_expected.to include(package_file_pending_destruction.id) }
- end
end
end
end
diff --git a/spec/presenters/packages/npm/package_presenter_spec.rb b/spec/presenters/packages/npm/package_presenter_spec.rb
index 2308f928c92..8b99e6d8605 100644
--- a/spec/presenters/packages/npm/package_presenter_spec.rb
+++ b/spec/presenters/packages/npm/package_presenter_spec.rb
@@ -104,17 +104,6 @@ RSpec.describe ::Packages::Npm::PackagePresenter do
it 'does not return them' do
expect(shasums).not_to include(package_file_pending_destruction.file_sha1)
end
-
- context 'with packages_installable_package_files disabled' do
- before do
- stub_feature_flags(packages_installable_package_files: false)
- package2.package_files.id_not_in(package_file_pending_destruction.id).delete_all
- end
-
- it 'returns them' do
- expect(shasums).to include(package_file_pending_destruction.file_sha1)
- end
- end
end
end
diff --git a/spec/presenters/packages/nuget/package_metadata_presenter_spec.rb b/spec/presenters/packages/nuget/package_metadata_presenter_spec.rb
index 6e99b6bafec..6c56763e719 100644
--- a/spec/presenters/packages/nuget/package_metadata_presenter_spec.rb
+++ b/spec/presenters/packages/nuget/package_metadata_presenter_spec.rb
@@ -29,14 +29,6 @@ RSpec.describe Packages::Nuget::PackageMetadataPresenter do
let_it_be(:package_file_pending_destruction) { create(:package_file, :pending_destruction, package: package, file_name: 'pending_destruction.nupkg') }
it { is_expected.not_to include('pending_destruction.nupkg') }
-
- context 'with packages_installable_package_files disabled' do
- before do
- stub_feature_flags(packages_installable_package_files: false)
- end
-
- it { is_expected.to include('pending_destruction.nupkg') }
- end
end
end
diff --git a/spec/presenters/packages/pypi/package_presenter_spec.rb b/spec/presenters/packages/pypi/package_presenter_spec.rb
index 8a23c0ec3cb..b19abdbc17a 100644
--- a/spec/presenters/packages/pypi/package_presenter_spec.rb
+++ b/spec/presenters/packages/pypi/package_presenter_spec.rb
@@ -59,14 +59,6 @@ RSpec.describe ::Packages::Pypi::PackagePresenter do
let(:project_or_group) { project }
it { is_expected.not_to include(package_file_pending_destruction.file_name)}
-
- context 'with packages_installable_package_files disabled' do
- before do
- stub_feature_flags(packages_installable_package_files: false)
- end
-
- it { is_expected.to include(package_file_pending_destruction.file_name)}
- end
end
end
end
diff --git a/spec/presenters/projects/security/configuration_presenter_spec.rb b/spec/presenters/projects/security/configuration_presenter_spec.rb
index f9150179ae5..5f874ab5a3f 100644
--- a/spec/presenters/projects/security/configuration_presenter_spec.rb
+++ b/spec/presenters/projects/security/configuration_presenter_spec.rb
@@ -86,8 +86,9 @@ RSpec.describe Projects::Security::ConfigurationPresenter do
expect(feature['type']).to eq('sast')
expect(feature['configured']).to eq(true)
- expect(feature['configuration_path']).to eq(project_security_configuration_sast_path(project))
+ expect(feature['configuration_path']).to be_nil
expect(feature['available']).to eq(true)
+ expect(feature['can_enable_by_merge_request']).to eq(true)
end
context 'when checking features configured status' do