summaryrefslogtreecommitdiff
path: root/spec/functions/get_module_path_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/functions/get_module_path_spec.rb')
-rwxr-xr-xspec/functions/get_module_path_spec.rb56
1 files changed, 29 insertions, 27 deletions
diff --git a/spec/functions/get_module_path_spec.rb b/spec/functions/get_module_path_spec.rb
index 38ce645..a39e413 100755
--- a/spec/functions/get_module_path_spec.rb
+++ b/spec/functions/get_module_path_spec.rb
@@ -1,8 +1,12 @@
-#! /usr/bin/env ruby -S rspec
require 'spec_helper'
-describe Puppet::Parser::Functions.function(:get_module_path) do
- Internals = PuppetlabsSpec::PuppetInternals
+describe 'get_module_path' do
+ it { is_expected.not_to eq(nil) }
+ it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
+ it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
+ it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
+ it { is_expected.to run.with_params('one').and_raise_error(Puppet::ParseError, /Could not find module/) }
+
class StubModule
attr_reader :path
def initialize(path)
@@ -10,37 +14,35 @@ describe Puppet::Parser::Functions.function(:get_module_path) do
end
end
- def scope(environment = "production")
- Internals.scope(:compiler => Internals.compiler(:node => Internals.node(:environment => environment)))
- end
-
- it 'should only allow one argument' do
- expect { scope.function_get_module_path([]) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/)
- expect { scope.function_get_module_path(['1','2','3']) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/)
- end
- it 'should raise an exception when the module cannot be found' do
- expect { scope.function_get_module_path(['foo']) }.to raise_error(Puppet::ParseError, /Could not find module/)
- end
describe 'when locating a module' do
let(:modulepath) { "/tmp/does_not_exist" }
let(:path_of_module_foo) { StubModule.new("/tmp/does_not_exist/foo") }
before(:each) { Puppet[:modulepath] = modulepath }
- it 'should be able to find module paths from the modulepath setting' do
- Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo)
- expect(scope.function_get_module_path(['foo'])).to eq(path_of_module_foo.path)
- end
- it 'should be able to find module paths when the modulepath is a list' do
- Puppet[:modulepath] = modulepath + ":/tmp"
- Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo)
- expect(scope.function_get_module_path(['foo'])).to eq(path_of_module_foo.path)
+ context 'in the default environment' do
+ before(:each) { Puppet::Module.expects(:find).with('foo', 'rp_env').returns(path_of_module_foo) }
+
+ it { is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) }
+
+ context 'when the modulepath is a list' do
+ before(:each) { Puppet[:modulepath] = modulepath + 'tmp/something_else' }
+
+ it { is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) }
+ end
end
- it 'should respect the environment' do
- skip("Disabled on Puppet 2.6.x") if Puppet.version =~ /^2\.6\b/
- Puppet.settings[:environment] = 'danstestenv'
- Puppet::Module.expects(:find).with('foo', 'danstestenv').returns(path_of_module_foo)
- expect(scope('danstestenv').function_get_module_path(['foo'])).to eq(path_of_module_foo.path)
+
+ context 'in a non-default default environment' do
+ let(:environment) { 'test' }
+ before(:each) { Puppet::Module.expects(:find).with('foo', 'test').returns(path_of_module_foo) }
+
+ it { is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) }
+
+ context 'when the modulepath is a list' do
+ before(:each) { Puppet[:modulepath] = modulepath + 'tmp/something_else' }
+
+ it { is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) }
+ end
end
end
end