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')
|
- 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