Provide urls for Merge Requests and Issue links
This commit is contained in:
parent
8db75fec1d
commit
b3b9a80dfe
3 changed files with 85 additions and 1 deletions
38
app/helpers/releases_helper.rb
Normal file
38
app/helpers/releases_helper.rb
Normal file
|
@ -0,0 +1,38 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module ReleasesHelper
|
||||
IMAGE_PATH = 'illustrations/releases.svg'
|
||||
DOCUMENTATION_PATH = 'user/project/releases/index'
|
||||
|
||||
def illustration
|
||||
image_path(IMAGE_PATH)
|
||||
end
|
||||
|
||||
def help_page
|
||||
help_page_path(DOCUMENTATION_PATH)
|
||||
end
|
||||
|
||||
def url_for_merge_requests
|
||||
project_merge_requests_url(@project, params_for_issue_and_mr_paths)
|
||||
end
|
||||
|
||||
def url_for_issues
|
||||
project_issues_url(@project, params_for_issue_and_mr_paths)
|
||||
end
|
||||
|
||||
def data_for_releases_page
|
||||
{
|
||||
project_id: @project.id,
|
||||
illustration_path: illustration,
|
||||
documentation_path: help_page,
|
||||
merge_requests_url: url_for_merge_requests,
|
||||
issues_url: url_for_issues
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def params_for_issue_and_mr_paths
|
||||
{ scope: 'all', state: 'opened' }
|
||||
end
|
||||
end
|
|
@ -1,3 +1,3 @@
|
|||
- page_title _('Releases')
|
||||
|
||||
#js-releases-page{ data: { project_id: @project.id, illustration_path: image_path('illustrations/releases.svg'), documentation_path: help_page_path('user/project/releases/index') } }
|
||||
#js-releases-page{ data: data_for_releases_page }
|
||||
|
|
46
spec/helpers/releases_helper_spec.rb
Normal file
46
spec/helpers/releases_helper_spec.rb
Normal file
|
@ -0,0 +1,46 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe ReleasesHelper do
|
||||
describe '#illustration' do
|
||||
it 'returns the correct image path' do
|
||||
expect(helper.illustration).to match(/illustrations\/releases-(\w+)\.svg/)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#help_page' do
|
||||
it 'returns the correct link to the help page' do
|
||||
expect(helper.help_page).to include('user/project/releases/index')
|
||||
end
|
||||
end
|
||||
|
||||
context 'url helpers' do
|
||||
let(:project) { build(:project, namespace: create(:group)) }
|
||||
|
||||
before do
|
||||
helper.instance_variable_set(:@project, project)
|
||||
end
|
||||
|
||||
describe '#url_for_merge_requests' do
|
||||
it 'returns the the correct link with the correct parameters' do
|
||||
path = "#{project.group.path}/#{project.path}/merge_requests?scope=all&state=opened"
|
||||
expect(helper.url_for_merge_requests).to include(path)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#url_for_issues' do
|
||||
it 'returns the the correct link with the correct parameters' do
|
||||
path = "#{project.group.path}/#{project.path}/issues?scope=all&state=opened"
|
||||
expect(helper.url_for_issues).to include(path)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#data_for_releases_page' do
|
||||
it 'has the needed data to display release blocks' do
|
||||
keys = %i(project_id illustration_path documentation_path merge_requests_url issues_url)
|
||||
expect(helper.data_for_releases_page.keys).to eq(keys)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue