Merge branch 'dm-readme-auxiliary-blob-viewer-without-wiki' into 'master'
Don't show auxiliary blob viewer for README when there is no wiki Closes #34732 See merge request !12689
This commit is contained in:
commit
bdc56348a5
5 changed files with 64 additions and 1 deletions
|
@ -10,5 +10,11 @@ module BlobViewer
|
|||
def visible_to?(current_user)
|
||||
can?(current_user, :read_wiki, project)
|
||||
end
|
||||
|
||||
def render_error
|
||||
return if project.has_external_wiki? || (project.wiki_enabled? && project.wiki.has_home_page?)
|
||||
|
||||
:no_wiki
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -63,6 +63,10 @@ class ProjectWiki
|
|||
!!repository.exists?
|
||||
end
|
||||
|
||||
def has_home_page?
|
||||
!!find_page('home')
|
||||
end
|
||||
|
||||
# Returns an Array of Gitlab WikiPage instances or an
|
||||
# empty Array if this Wiki has no pages.
|
||||
def pages
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
= icon('info-circle fw')
|
||||
= succeed '.' do
|
||||
To learn more about this project, read
|
||||
= link_to "the wiki", project_wikis_path(viewer.project)
|
||||
= link_to "the wiki", get_project_wiki_path(viewer.project)
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Don't show auxiliary blob viewer for README when there is no wiki
|
||||
merge_request:
|
||||
author:
|
49
spec/models/blob_viewer/readme_spec.rb
Normal file
49
spec/models/blob_viewer/readme_spec.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe BlobViewer::Readme, model: true do
|
||||
include FakeBlobHelpers
|
||||
|
||||
let(:project) { create(:project, :repository) }
|
||||
let(:blob) { fake_blob(path: 'README.md') }
|
||||
subject { described_class.new(blob) }
|
||||
|
||||
describe '#render_error' do
|
||||
context 'when there is no wiki' do
|
||||
it 'returns :no_wiki' do
|
||||
expect(subject.render_error).to eq(:no_wiki)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when there is an external wiki' do
|
||||
before do
|
||||
project.has_external_wiki = true
|
||||
end
|
||||
|
||||
it 'returns nil' do
|
||||
expect(subject.render_error).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when there is a local wiki' do
|
||||
before do
|
||||
project.wiki_enabled = true
|
||||
end
|
||||
|
||||
context 'when the wiki is empty' do
|
||||
it 'returns :no_wiki' do
|
||||
expect(subject.render_error).to eq(:no_wiki)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the wiki is not empty' do
|
||||
before do
|
||||
WikiPages::CreateService.new(project, project.owner, title: 'home', content: 'Home page').execute
|
||||
end
|
||||
|
||||
it 'returns nil' do
|
||||
expect(subject.render_error).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue