1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
# frozen_string_literal: true
require File.dirname(__FILE__) + "/spec_helper"
class MyDocServerSerializerRouter
attr_accessor :request
def docs_prefix; 'PREFIX' end
def initialize; @request = mock_request end
end
class MockDocServerHelper
include YARD::Templates::Helpers::BaseHelper
include YARD::Templates::Helpers::HtmlHelper
include YARD::Server::DocServerHelper
attr_accessor :adapter
attr_accessor :single_library
attr_accessor :library
def initialize
@single_library = false
@library = LibraryVersion.new('foo')
@adapter = mock_adapter(:router => MyDocServerSerializerRouter.new)
@serializer = YARD::Server::DocServerSerializer.new
@object = YARD::Registry.root
end
def options; OpenStruct.new end
end
RSpec.describe YARD::Server::DocServerHelper do
before do
@helper = MockDocServerHelper.new
end
describe "#url_for" do
it "does not link to /library/ if single_library = true" do
@helper.single_library = true
expect(@helper.url_for(Registry.root)).to eq "/PREFIX/toplevel"
end
it "returns /PREFIX/foo/version if foo has a version" do
@helper.library = LibraryVersion.new('foo', 'bar')
@helper.adapter.router.request.version_supplied = true
expect(@helper.url_for(P('A'))).to eq '/PREFIX/foo/bar/A'
end
it "uses script name prefix if set" do
@helper.adapter.router.request.script_name = '/mount/point'
@helper.library = LibraryVersion.new('foo', 'bar')
@helper.adapter.router.request.version_supplied = true
expect(@helper.url_for(P('A'))).to eq '/mount/point/PREFIX/foo/bar/A'
end
end
describe "#url_for_file" do
it "properly links file objects using file/ prefix" do
file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
expect(@helper.url_for_file(file)).to eq '/PREFIX/foo/file/a/b/FooBar.md'
end
it "properly links anchor portion" do
file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
expect(@helper.url_for_file(file, 'anchor')).to eq '/PREFIX/foo/file/a/b/FooBar.md#anchor'
end
it "uses script name prefix if set" do
@helper.adapter.router.request.script_name = '/mount/point'
file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
expect(@helper.url_for_file(file)).to eq '/mount/point/PREFIX/foo/file/a/b/FooBar.md'
end
end
end
|