Commit c8a031af authored by Mayra Cabrera's avatar Mayra Cabrera

Moves method to ci/pipeline_editor_helper

Also make sure original version is returned on EE unless the feature is
available
parent b32a280d
......@@ -7,5 +7,23 @@ module Ci
def can_view_pipeline_editor?(project)
can_collaborate_with_project?(project)
end
def js_pipeline_editor_data(project)
{
"ci-config-path": project.ci_config_path_or_default,
"commit-sha" => project.commit ? project.commit.sha : '',
"default-branch" => project.default_branch,
"empty-state-illustration-path" => image_path('illustrations/empty-state/empty-dag-md.svg'),
"initial-branch-name": params[:branch_name],
"lint-help-page-path" => help_page_path('ci/lint', anchor: 'validate-basic-logic-and-syntax'),
"new-merge-request-path" => namespace_project_new_merge_request_path,
"project-path" => project.path,
"project-full-path" => project.full_path,
"project-namespace" => project.namespace.full_path,
"yml-help-page-path" => help_page_path('ci/yaml/README')
}
end
end
end
Ci::PipelineEditorHelper.prepend_if_ee('EE::Ci::PipelineEditorHelper')
# frozen_string_literal: true
module Projects::Ci::PipelineEditorHelper
def js_pipeline_editor_data(project)
{
"ci-config-path": project.ci_config_path_or_default,
"commit-sha" => project.commit ? project.commit.sha : '',
"default-branch" => project.default_branch,
"empty-state-illustration-path" => image_path('illustrations/empty-state/empty-dag-md.svg'),
"initial-branch-name": params[:branch_name],
"lint-help-page-path" => help_page_path('ci/lint', anchor: 'validate-basic-logic-and-syntax'),
"new-merge-request-path" => namespace_project_new_merge_request_path,
"project-path" => project.path,
"project-full-path" => project.full_path,
"project-namespace" => project.namespace.full_path,
"yml-help-page-path" => help_page_path('ci/yaml/README')
}
end
end
# frozen_string_literal: true
module EE
module Ci
module PipelineEditorHelper
extend ::Gitlab::Utils::Override
override :js_pipeline_editor_data
def js_pipeline_editor_data(project)
return super unless project.feature_available?(:coverage_fuzzing)
super.merge(
"api-fuzzing-configuration-path" => project_security_configuration_api_fuzzing_path(project)
)
end
end
end
end
# frozen_string_literal: true
module EE::Projects::Ci::PipelineEditorHelper
extend ::Gitlab::Utils::Override
override :js_pipeline_editor_data
def js_pipeline_editor_data(project)
super.merge(
"api-fuzzing-configuration-path" => project_security_configuration_api_fuzzing_path(project)
)
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe EE::Ci::PipelineEditorHelper do
let_it_be(:project) { create(:project, :public, :repository) }
describe '#js_pipeline_editor_data' do
before do
stub_licensed_features(coverage_fuzzing: true)
allow(helper)
.to receive(:namespace_project_new_merge_request_path)
.and_return('/mock/project/-/merge_requests/new')
allow(helper)
.to receive(:image_path)
.and_return('foo')
end
subject(:pipeline_editor_data) { helper.js_pipeline_editor_data(project) }
it 'returns ee specific values' do
expect(pipeline_editor_data.keys).to include('api-fuzzing-configuration-path')
end
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe EE::Projects::Ci::PipelineEditorHelper do
let_it_be(:project) { create(:project, :public, :repository) }
describe '#js_pipeline_editor_data' do
before do
allow(helper).to receive(:namespace_project_new_merge_request_path).and_return('/mock/project/-/merge_requests/new')
end
subject { helper.js_pipeline_editor_data(project) }
it {
is_expected.to eq({
"ci-config-path": project.ci_config_path_or_default,
"commit-sha" => project.commit.sha,
"default-branch" => project.default_branch,
"empty-state-illustration-path" => match_asset_path('/assets/illustrations/empty-state/empty-dag-md.svg'),
"initial-branch-name": nil,
"lint-help-page-path" => help_page_path('ci/lint', anchor: 'validate-basic-logic-and-syntax'),
"new-merge-request-path" => '/mock/project/-/merge_requests/new',
"project-path" => project.path,
"project-full-path" => project.full_path,
"project-namespace" => project.namespace.full_path,
"yml-help-page-path" => help_page_path('ci/yaml/README'),
"api-fuzzing-configuration-path" => project_security_configuration_api_fuzzing_path(project)
})
}
end
end
......@@ -20,4 +20,36 @@ RSpec.describe Ci::PipelineEditorHelper do
expect(subject).to be false
end
end
describe '#js_pipeline_editor_data' do
let(:project) { create(:project, :repository) }
before do
allow(helper)
.to receive(:namespace_project_new_merge_request_path)
.and_return('/mock/project/-/merge_requests/new')
allow(helper)
.to receive(:image_path)
.and_return('foo')
end
subject(:pipeline_editor_data) { helper.js_pipeline_editor_data(project) }
it 'returns pipeline editor data' do
expect(pipeline_editor_data).to eq({
"ci-config-path": project.ci_config_path_or_default,
"commit-sha" => project.commit.sha,
"default-branch" => project.default_branch,
"empty-state-illustration-path" => 'foo',
"initial-branch-name": nil,
"lint-help-page-path" => help_page_path('ci/lint', anchor: 'validate-basic-logic-and-syntax'),
"new-merge-request-path" => '/mock/project/-/merge_requests/new',
"project-path" => project.path,
"project-full-path" => project.full_path,
"project-namespace" => project.namespace.full_path,
"yml-help-page-path" => help_page_path('ci/yaml/README')
})
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment