diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 22:00:14 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 22:00:14 +0300 |
commit | 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch) | |
tree | 11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /spec/presenters | |
parent | ec73467c23693d0db63a797d10194da9e72a74af (diff) |
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'spec/presenters')
-rw-r--r-- | spec/presenters/ci/build_runner_presenter_spec.rb | 27 | ||||
-rw-r--r-- | spec/presenters/ci/stage_presenter_spec.rb | 2 | ||||
-rw-r--r-- | spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb | 13 | ||||
-rw-r--r-- | spec/presenters/project_presenter_spec.rb | 40 |
4 files changed, 52 insertions, 30 deletions
diff --git a/spec/presenters/ci/build_runner_presenter_spec.rb b/spec/presenters/ci/build_runner_presenter_spec.rb index 952de121cc4..dedfe6925c5 100644 --- a/spec/presenters/ci/build_runner_presenter_spec.rb +++ b/spec/presenters/ci/build_runner_presenter_spec.rb @@ -349,16 +349,6 @@ RSpec.describe Ci::BuildRunnerPresenter do public: false, masked: false } ) end - - it 'logs file_variable_is_referenced_in_another_variable' do - expect(Gitlab::AppJsonLogger).to receive(:info).with( - event: 'file_variable_is_referenced_in_another_variable', - project_id: project.id, - variable: 'file_var' - ).once - - runner_variables - end end context 'when there is a raw variable to expand' do @@ -385,23 +375,6 @@ RSpec.describe Ci::BuildRunnerPresenter do public: false, masked: false } ) end - - context 'when the FF ci_raw_variables_in_yaml_config is disabled' do - before do - stub_feature_flags(ci_raw_variables_in_yaml_config: false) - end - - it 'returns expanded variables' do - expect(runner_variables).to include( - { key: 'regular_var', value: 'value 1', - public: false, masked: false }, - { key: 'raw_var', value: 'value 2', - public: false, masked: false, raw: true }, - { key: 'var_with_variables', value: 'value 3 and value 1 and value 2 and $undefined_var', - public: false, masked: false } - ) - end - end end end diff --git a/spec/presenters/ci/stage_presenter_spec.rb b/spec/presenters/ci/stage_presenter_spec.rb index 368f03b0150..e7187b4ac16 100644 --- a/spec/presenters/ci/stage_presenter_spec.rb +++ b/spec/presenters/ci/stage_presenter_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Ci::StagePresenter do let!(:retried_build) { create(:ci_build, :tags, :artifacts, :retried, pipeline: stage.pipeline, stage: stage.name) } before do - create(:generic_commit_status, pipeline: stage.pipeline, stage: stage.name) + create(:generic_commit_status, pipeline: stage.pipeline, ci_stage: stage) end shared_examples 'preloaded associations for CI status' do diff --git a/spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb b/spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb index 39682a3311c..87a87cd8d70 100644 --- a/spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb +++ b/spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb @@ -2,12 +2,13 @@ require 'spec_helper' -RSpec.describe Packages::Nuget::PackagesMetadataPresenter do +RSpec.describe Packages::Nuget::PackagesMetadataPresenter, feature_category: :package_registry do include_context 'with expected presenters dependency groups' let_it_be(:project) { create(:project) } let_it_be(:packages) { create_list(:nuget_package, 5, :with_metadatum, name: 'Dummy.Package', project: project) } - let_it_be(:presenter) { described_class.new(packages) } + + let(:presenter) { described_class.new(project.packages) } describe '#count' do subject { presenter.count } @@ -28,6 +29,14 @@ RSpec.describe Packages::Nuget::PackagesMetadataPresenter do end end + it 'avoids N+1 database queries' do + control = ActiveRecord::QueryRecorder.new { described_class.new(project.packages).items } + + create(:nuget_package, :with_metadatum, name: 'Dummy.Package', project: project) + + expect { described_class.new(project.packages).items }.not_to exceed_query_limit(control) + end + it 'returns an array' do items = subject diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb index 4c2b87f34a1..e3221c18afc 100644 --- a/spec/presenters/project_presenter_spec.rb +++ b/spec/presenters/project_presenter_spec.rb @@ -286,6 +286,46 @@ RSpec.describe ProjectPresenter do link: presenter.project_usage_quotas_path(project) ) end + + describe '#gitlab_ci_anchor_data' do + before do + project.update!(auto_devops_enabled: false) + end + + context 'when user cannot collaborate' do + it 'returns no value' do + expect(presenter.gitlab_ci_anchor_data).to be(nil) + end + end + + context 'when user can collaborate' do + before do + project.add_developer(user) + end + + context 'and the CI/CD file is missing' do + it 'returns `Set up CI/CD` button' do + expect(presenter.gitlab_ci_anchor_data).to have_attributes( + is_link: false, + label: a_string_including('Set up CI/CD'), + link: presenter.project_ci_pipeline_editor_path(project) + ) + end + end + + context 'and there is a CI/CD file' do + it 'returns `CI/CD configuration` button' do + allow(project.repository).to receive(:gitlab_ci_yml).and_return 'Default content' + + expect(presenter.gitlab_ci_anchor_data).to have_attributes( + is_link: false, + label: a_string_including('CI/CD configuration'), + link: presenter.project_ci_pipeline_editor_path(project) + ) + end + end + end + end end describe '#releases_anchor_data' do |