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:
Diffstat (limited to 'spec/presenters')
-rw-r--r--spec/presenters/blob_presenter_spec.rb12
-rw-r--r--spec/presenters/ci/build_runner_presenter_spec.rb41
-rw-r--r--spec/presenters/ci/pipeline_presenter_spec.rb4
-rw-r--r--spec/presenters/deployments/deployment_presenter_spec.rb2
-rw-r--r--spec/presenters/issue_presenter_spec.rb36
-rw-r--r--spec/presenters/packages/npm/package_presenter_spec.rb8
-rw-r--r--spec/presenters/project_presenter_spec.rb8
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