diff options
Diffstat (limited to 'code/environments/production/modules/stdlib/spec/functions/getvar_spec.rb')
-rw-r--r-- | code/environments/production/modules/stdlib/spec/functions/getvar_spec.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/code/environments/production/modules/stdlib/spec/functions/getvar_spec.rb b/code/environments/production/modules/stdlib/spec/functions/getvar_spec.rb new file mode 100644 index 0000000..cb865c7 --- /dev/null +++ b/code/environments/production/modules/stdlib/spec/functions/getvar_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +describe 'getvar' do + it { is_expected.not_to eq(nil) } + it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } + it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } + + it { is_expected.to run.with_params('$::foo').and_return(nil) } + + context 'with given variables in namespaces' do + let(:pre_condition) do + <<-PUPPETCODE + class site::data { $foo = 'baz' } + include site::data + PUPPETCODE + end + + it { is_expected.to run.with_params('site::data::foo').and_return('baz') } + it { is_expected.to run.with_params('::site::data::foo').and_return('baz') } + it { is_expected.to run.with_params('::site::data::bar').and_return(nil) } + end + + context 'with given variables in namespaces' do + let(:pre_condition) do + <<-PUPPETCODE + class site::info { $lock = 'ŧҺîš íš ắ śţřĭŋĝ' } + class site::new { $item = '万Ü€‰' } + include site::info + include site::new + PUPPETCODE + end + + it { is_expected.to run.with_params('site::info::lock').and_return('ŧҺîš íš ắ śţřĭŋĝ') } + it { is_expected.to run.with_params('::site::new::item').and_return('万Ü€‰') } + end +end |