spec/grape/path_spec.rb in grape-0.9.0 vs spec/grape/path_spec.rb in grape-0.10.0
- old
+ new
@@ -1,79 +1,78 @@
require 'spec_helper'
module Grape
describe Path do
-
- describe "#initialize" do
- it "remembers the path" do
+ describe '#initialize' do
+ it 'remembers the path' do
path = Path.new('/:id', anything, anything)
expect(path.raw_path).to eql('/:id')
end
- it "remembers the namespace" do
+ it 'remembers the namespace' do
path = Path.new(anything, '/users', anything)
expect(path.namespace).to eql('/users')
end
- it "remebers the settings" do
+ it 'remebers the settings' do
path = Path.new(anything, anything, foo: 'bar')
expect(path.settings).to eql(foo: 'bar')
end
end
- describe "#mount_path" do
- it "is nil when no mount path setting exists" do
+ describe '#mount_path' do
+ it 'is nil when no mount path setting exists' do
path = Path.new(anything, anything, {})
expect(path.mount_path).to be_nil
end
- it "is nil when the mount path is nil" do
+ it 'is nil when the mount path is nil' do
path = Path.new(anything, anything, mount_path: nil)
expect(path.mount_path).to be_nil
end
- it "splits the mount path" do
- path = Path.new(anything, anything, mount_path: 'foo/bar')
- expect(path.mount_path).to eql(['foo', 'bar'])
+ it 'splits the mount path' do
+ path = Path.new(anything, anything, mount_path: %w(foo bar))
+ expect(path.mount_path).to eql(%w(foo bar))
end
end
- describe "#root_prefix" do
- it "is nil when no root prefix setting exists" do
+ describe '#root_prefix' do
+ it 'is nil when no root prefix setting exists' do
path = Path.new(anything, anything, {})
expect(path.root_prefix).to be_nil
end
- it "is nil when the mount path is nil" do
+ it 'is nil when the mount path is nil' do
path = Path.new(anything, anything, root_prefix: nil)
expect(path.root_prefix).to be_nil
end
- it "splits the mount path" do
+ it 'splits the mount path' do
path = Path.new(anything, anything, root_prefix: 'hello/world')
- expect(path.root_prefix).to eql(['hello', 'world'])
+ expect(path.root_prefix).to eql(%w(hello world))
end
end
- describe "#uses_path_versioning?" do
- it "is false when the version setting is nil" do
+ describe '#uses_path_versioning?' do
+ it 'is false when the version setting is nil' do
path = Path.new(anything, anything, version: nil)
expect(path.uses_path_versioning?).to be false
end
- it "is false when the version option is header" do
+ it 'is false when the version option is header' do
path = Path.new(
anything,
anything,
version: 'v1',
version_options: { using: :header }
)
expect(path.uses_path_versioning?).to be false
end
- it "is true when the version option is path" do
+ it 'is true when the version option is path' do
path = Path.new(
anything,
anything,
version: 'v1',
version_options: { using: :path }
@@ -81,74 +80,74 @@
expect(path.uses_path_versioning?).to be true
end
end
- describe "#has_namespace?" do
- it "is false when the namespace is nil" do
+ describe '#has_namespace?' do
+ it 'is false when the namespace is nil' do
path = Path.new(anything, nil, anything)
expect(path).not_to have_namespace
end
- it "is false when the namespace starts with whitespace" do
+ it 'is false when the namespace starts with whitespace' do
path = Path.new(anything, ' /foo', anything)
expect(path).not_to have_namespace
end
- it "is false when the namespace is the root path" do
+ it 'is false when the namespace is the root path' do
path = Path.new(anything, '/', anything)
expect(path).not_to have_namespace
end
- it "is true otherwise" do
+ it 'is true otherwise' do
path = Path.new(anything, '/world', anything)
expect(path).to have_namespace
end
end
- describe "#has_path?" do
- it "is false when the path is nil" do
+ describe '#has_path?' do
+ it 'is false when the path is nil' do
path = Path.new(nil, anything, anything)
expect(path).not_to have_path
end
- it "is false when the path starts with whitespace" do
+ it 'is false when the path starts with whitespace' do
path = Path.new(' /foo', anything, anything)
expect(path).not_to have_path
end
- it "is false when the path is the root path" do
+ it 'is false when the path is the root path' do
path = Path.new('/', anything, anything)
expect(path).not_to have_path
end
- it "is true otherwise" do
+ it 'is true otherwise' do
path = Path.new('/hello', anything, anything)
expect(path).to have_path
end
end
- describe "#path" do
- context "mount_path" do
- it "is not included when it is nil" do
+ describe '#path' do
+ context 'mount_path' do
+ it 'is not included when it is nil' do
path = Path.new(nil, nil, mount_path: '/foo/bar')
expect(path.path).to eql '/foo/bar'
end
- it "is included when it is not nil" do
+ it 'is included when it is not nil' do
path = Path.new(nil, nil, {})
expect(path.path).to eql('/')
end
end
- context "root_prefix" do
- it "is not included when it is nil" do
+ context 'root_prefix' do
+ it 'is not included when it is nil' do
path = Path.new(nil, nil, {})
expect(path.path).to eql('/')
end
- it "is included after the mount path" do
+ it 'is included after the mount path' do
path = Path.new(
nil,
nil,
mount_path: '/foo',
root_prefix: '/hello'
@@ -156,22 +155,22 @@
expect(path.path).to eql('/foo/hello')
end
end
- it "uses the namespace after the mount path and root prefix" do
+ it 'uses the namespace after the mount path and root prefix' do
path = Path.new(
nil,
'namespace',
mount_path: '/foo',
root_prefix: '/hello'
)
expect(path.path).to eql('/foo/hello/namespace')
end
- it "uses the raw path after the namespace" do
+ it 'uses the raw path after the namespace' do
path = Path.new(
'raw_path',
'namespace',
mount_path: '/foo',
root_prefix: '/hello'
@@ -179,51 +178,73 @@
expect(path.path).to eql('/foo/hello/namespace/raw_path')
end
end
- describe "#suffix" do
- context "when path versioning is used" do
+ describe '#suffix' do
+ context 'when using a specific format' do
+ it 'is empty' do
+ path = Path.new(nil, nil, {})
+ allow(path).to receive(:uses_specific_format?) { true }
+
+ expect(path.suffix).to eql('')
+ end
+ end
+
+ context 'when path versioning is used' do
it "includes a '/'" do
path = Path.new(nil, nil, {})
+ allow(path).to receive(:uses_specific_format?) { false }
allow(path).to receive(:uses_path_versioning?) { true }
expect(path.suffix).to eql('(/.:format)')
end
end
- context "when path versioning is not used" do
+ context 'when path versioning is not used' do
it "does not include a '/' when the path has a namespace" do
path = Path.new(nil, 'namespace', {})
+ allow(path).to receive(:uses_specific_format?) { false }
allow(path).to receive(:uses_path_versioning?) { true }
expect(path.suffix).to eql('(.:format)')
end
it "does not include a '/' when the path has a path" do
path = Path.new('/path', nil, {})
+ allow(path).to receive(:uses_specific_format?) { false }
allow(path).to receive(:uses_path_versioning?) { true }
expect(path.suffix).to eql('(.:format)')
end
it "includes a '/' otherwise" do
path = Path.new(nil, nil, {})
+ allow(path).to receive(:uses_specific_format?) { false }
allow(path).to receive(:uses_path_versioning?) { true }
expect(path.suffix).to eql('(/.:format)')
end
end
end
- describe "#path_with_suffix" do
- it "combines the path and suffix" do
+ describe '#path_with_suffix' do
+ it 'combines the path and suffix' do
path = Path.new(nil, nil, {})
allow(path).to receive(:path) { '/the/path' }
allow(path).to receive(:suffix) { 'suffix' }
expect(path.path_with_suffix).to eql('/the/pathsuffix')
end
- end
+ context 'when using a specific format' do
+ it 'does not have a suffix' do
+ path = Path.new(nil, nil, {})
+ allow(path).to receive(:path) { '/the/path' }
+ allow(path).to receive(:uses_specific_format?) { true }
+
+ expect(path.path_with_suffix).to eql('/the/path')
+ end
+ end
+ end
end
end