diff options
Diffstat (limited to 'spec/presenters')
-rw-r--r-- | spec/presenters/blob_presenter_spec.rb | 12 | ||||
-rw-r--r-- | spec/presenters/ci/build_runner_presenter_spec.rb | 41 | ||||
-rw-r--r-- | spec/presenters/ci/pipeline_presenter_spec.rb | 4 | ||||
-rw-r--r-- | spec/presenters/deployments/deployment_presenter_spec.rb | 2 | ||||
-rw-r--r-- | spec/presenters/issue_presenter_spec.rb | 36 | ||||
-rw-r--r-- | spec/presenters/packages/npm/package_presenter_spec.rb | 8 | ||||
-rw-r--r-- | spec/presenters/project_presenter_spec.rb | 8 |
7 files changed, 75 insertions, 36 deletions
diff --git a/spec/presenters/blob_presenter_spec.rb b/spec/presenters/blob_presenter_spec.rb index 498b2a32a0e..88dafb7ea1f 100644 --- a/spec/presenters/blob_presenter_spec.rb +++ b/spec/presenters/blob_presenter_spec.rb @@ -252,6 +252,18 @@ RSpec.describe BlobPresenter do end end + describe '#highlight_and_trim' do + let(:git_blob) { blob.__getobj__ } + + it 'returns trimmed content for longer line' do + trimmed_lines = git_blob.data.split("\n").map { |line| line[0, 55] }.join("\n") + + expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "#{trimmed_lines}\n", plain: nil, language: 'ruby', context: { ellipsis_svg: "svg_icon", ellipsis_indexes: [21, 26, 49] }) + + presenter.highlight_and_trim(ellipsis_svg: "svg_icon", trim_length: 55) + end + end + describe '#blob_language' do subject { presenter.blob_language } diff --git a/spec/presenters/ci/build_runner_presenter_spec.rb b/spec/presenters/ci/build_runner_presenter_spec.rb index 396fe7843ba..952de121cc4 100644 --- a/spec/presenters/ci/build_runner_presenter_spec.rb +++ b/spec/presenters/ci/build_runner_presenter_spec.rb @@ -325,7 +325,7 @@ RSpec.describe Ci::BuildRunnerPresenter do is_expected.to eq(presenter.variables.to_runner_variables) end - context 'when there are variables to expand' do + context 'when there is a file variable to expand' do before_all do create(:ci_variable, project: project, key: 'regular_var', @@ -353,23 +353,50 @@ RSpec.describe Ci::BuildRunnerPresenter do 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 + project_id: project.id, + variable: 'file_var' ).once runner_variables end + end + + context 'when there is a raw variable to expand' do + before_all do + create(:ci_variable, project: project, + key: 'regular_var', + value: 'value 1') + create(:ci_variable, project: project, + key: 'raw_var', + value: 'value 2', + raw: true) + create(:ci_variable, project: project, + key: 'var_with_variables', + value: 'value 3 and $regular_var and $raw_var and $undefined_var') + end + + it 'returns expanded variables without expanding raws' 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 $raw_var and $undefined_var', + public: false, masked: false } + ) + end - context 'when the FF ci_stop_expanding_file_vars_for_runners is disabled' do + context 'when the FF ci_raw_variables_in_yaml_config is disabled' do before do - stub_feature_flags(ci_stop_expanding_file_vars_for_runners: false) + stub_feature_flags(ci_raw_variables_in_yaml_config: false) end - it 'returns variables with expanded' do + it 'returns expanded variables' do expect(runner_variables).to include( { key: 'regular_var', value: 'value 1', public: false, masked: false }, - { key: 'file_var', value: 'value 2', - public: false, masked: false, file: true }, + { 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 } ) diff --git a/spec/presenters/ci/pipeline_presenter_spec.rb b/spec/presenters/ci/pipeline_presenter_spec.rb index 4539c3d06f6..7f4c8120e17 100644 --- a/spec/presenters/ci/pipeline_presenter_spec.rb +++ b/spec/presenters/ci/pipeline_presenter_spec.rb @@ -90,12 +90,12 @@ RSpec.describe Ci::PipelinePresenter do end end - describe '#name' do + describe '#event_type_name' do before do allow(pipeline).to receive(:merge_request_event_type) { event_type } end - subject { presenter.name } + subject { presenter.event_type_name } context 'for a detached merge request pipeline' do let(:event_type) { :detached } diff --git a/spec/presenters/deployments/deployment_presenter_spec.rb b/spec/presenters/deployments/deployment_presenter_spec.rb index 689451677f4..51da7b9fd12 100644 --- a/spec/presenters/deployments/deployment_presenter_spec.rb +++ b/spec/presenters/deployments/deployment_presenter_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Deployments::DeploymentPresenter do describe '#tags' do it do - expect(deployment).to receive(:tags).and_return(['test']) + expect(deployment).to receive(:tags).and_return(['refs/tags/test']) expect(presenter.tags).to eq([{ name: 'test', path: 'tags/test' }]) end end diff --git a/spec/presenters/issue_presenter_spec.rb b/spec/presenters/issue_presenter_spec.rb index e17ae218cd3..df43b0279dd 100644 --- a/spec/presenters/issue_presenter_spec.rb +++ b/spec/presenters/issue_presenter_spec.rb @@ -26,20 +26,20 @@ RSpec.describe IssuePresenter do context 'when issue type is task' do let(:presented_issue) { task } - context 'when work_items feature flag is enabled' do + context 'when use_iid_in_work_items_path feature flag is disabled' do + before do + stub_feature_flags(use_iid_in_work_items_path: false) + end + it 'returns a work item url for the task' do expect(presenter.web_url).to eq(project_work_items_url(project, work_items_path: presented_issue.id)) end end - context 'when work_items feature flag is disabled' do - before do - stub_feature_flags(work_items: false) - end - - it 'returns an issue url for the task' do - expect(presenter.web_url).to eq("http://localhost/#{group.name}/#{project.name}/-/issues/#{presented_issue.iid}") - end + it 'returns a work item url using iid for the task' do + expect(presenter.web_url).to eq( + project_work_items_url(project, work_items_path: presented_issue.iid, iid_path: true) + ) end end end @@ -66,20 +66,20 @@ RSpec.describe IssuePresenter do context 'when issue type is task' do let(:presented_issue) { task } - context 'when work_items feature flag is enabled' do + context 'when use_iid_in_work_items_path feature flag is disabled' do + before do + stub_feature_flags(use_iid_in_work_items_path: false) + end + it 'returns a work item path for the task' do expect(presenter.issue_path).to eq(project_work_items_path(project, work_items_path: presented_issue.id)) end end - context 'when work_items feature flag is disabled' do - before do - stub_feature_flags(work_items: false) - end - - it 'returns an issue path for the task' do - expect(presenter.issue_path).to eq("/#{group.name}/#{project.name}/-/issues/#{presented_issue.iid}") - end + it 'returns a work item path using iid for the task' do + expect(presenter.issue_path).to eq( + project_work_items_path(project, work_items_path: presented_issue.iid, iid_path: true) + ) end end end diff --git a/spec/presenters/packages/npm/package_presenter_spec.rb b/spec/presenters/packages/npm/package_presenter_spec.rb index 8b99e6d8605..4fa469c7cd2 100644 --- a/spec/presenters/packages/npm/package_presenter_spec.rb +++ b/spec/presenters/packages/npm/package_presenter_spec.rb @@ -86,10 +86,10 @@ RSpec.describe ::Packages::Npm::PackagePresenter do it 'avoids N+1 database queries' do check_n_plus_one(:versions) do create_list(:npm_package, 5, project: project, name: package_name).each do |npm_package| - if has_dependencies - ::Packages::DependencyLink.dependency_types.keys.each do |dependency_type| - create(:packages_dependency_link, package: npm_package, dependency_type: dependency_type) - end + next unless has_dependencies + + ::Packages::DependencyLink.dependency_types.keys.each do |dependency_type| + create(:packages_dependency_link, package: npm_package, dependency_type: dependency_type) end end end diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb index 832deee6186..c32cc87afbb 100644 --- a/spec/presenters/project_presenter_spec.rb +++ b/spec/presenters/project_presenter_spec.rb @@ -104,7 +104,7 @@ RSpec.describe ProjectPresenter do expect(release).to be_truthy expect(presenter.releases_anchor_data).to have_attributes( is_link: true, - label: a_string_including("#{project.releases.count}"), + label: a_string_including(project.releases.count.to_s), link: presenter.project_releases_path(project) ) end @@ -295,7 +295,7 @@ RSpec.describe ProjectPresenter do expect(release).to be_truthy expect(presenter.releases_anchor_data).to have_attributes( is_link: true, - label: a_string_including("#{project.releases.count}"), + label: a_string_including(project.releases.count.to_s), link: presenter.project_releases_path(project) ) end @@ -329,7 +329,7 @@ RSpec.describe ProjectPresenter do it 'returns branches data' do expect(presenter.branches_anchor_data).to have_attributes( is_link: true, - label: a_string_including("#{project.repository.branches.size}"), + label: a_string_including(project.repository.branches.size.to_s), link: presenter.project_branches_path(project) ) end @@ -339,7 +339,7 @@ RSpec.describe ProjectPresenter do it 'returns tags data' do expect(presenter.tags_anchor_data).to have_attributes( is_link: true, - label: a_string_including("#{project.repository.tags.size}"), + label: a_string_including(project.repository.tags.size.to_s), link: presenter.project_tags_path(project) ) end |