diff --git a/.puppet-lint.rc b/.puppet-lint.rc index cc96ece..8b13789 100644 --- a/.puppet-lint.rc +++ b/.puppet-lint.rc @@ -1 +1 @@ ---relative + diff --git a/.sync.yml b/.sync.yml index 07ec160..0bfcbe2 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,4 +1,7 @@ --- +.gitlab-ci.yml: + unmanaged: true + .travis.yml: docker_sets: - set: docker/centos-7 @@ -9,6 +12,9 @@ branches: - release +appveyor.yml: + delete: true + Gemfile: optional: ':development': @@ -26,8 +32,6 @@ Gemfile: - mingw - x64_mingw -appveyor.yml: - delete: true - -.gitlab-ci.yml: - unmanaged: true +spec/spec_helper.rb: + mock_with: ':rspec' + coverage_report: true diff --git a/metadata.json b/metadata.json index 1c55936..edc0d24 100644 --- a/metadata.json +++ b/metadata.json @@ -79,5 +79,5 @@ ], "template-url": "https://github.com/puppetlabs/pdk-templates/", "template-ref": "1.9.0-0-g7281db5", - "pdk-version": "1.9.0" -} \ No newline at end of file + "pdk-version": "1.7.1" +} diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0d5efc0..149ff03 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,7 @@ +RSpec.configure do |c| + c.mock_with :rspec +end + require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' @@ -34,6 +38,7 @@ RSpec.configure do |c| end c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT'] c.after(:suite) do + RSpec::Puppet::Coverage.report!(0) end end diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb new file mode 100644 index 0000000..2e897cb --- /dev/null +++ b/spec/spec_helper_local.rb @@ -0,0 +1,28 @@ +if ENV['COVERAGE'] == 'yes' + require 'simplecov' + require 'simplecov-console' + require 'codecov' + + SimpleCov.formatters = [ + SimpleCov::Formatter::HTMLFormatter, + SimpleCov::Formatter::Console, + SimpleCov::Formatter::Codecov, + ] + SimpleCov.start do + track_files 'lib/**/*.rb' + + add_filter '/spec' + + # do not track vendored files + add_filter '/vendor' + add_filter '/.vendor' + + # do not track gitignored files + # this adds about 4 seconds to the coverage check + # this could definitely be optimized + add_filter do |f| + # system returns true if exit status is 0, which with git-check-ignore means file is ignored + system("git check-ignore --quiet #{f.filename}") + end + end +end diff --git a/spec/unit/facter/java_default_home_spec.rb b/spec/unit/facter/java_default_home_spec.rb index a5909c3..4d2accf 100644 --- a/spec/unit/facter/java_default_home_spec.rb +++ b/spec/unit/facter/java_default_home_spec.rb @@ -15,15 +15,15 @@ end def symlink_and_test(symlink_path, java_home) File.symlink(symlink_path, './java_test') - Facter::Util::Resolution.expects(:which).with('java').returns('./java_test') - File.expects(:realpath).with('./java_test').returns(symlink_path) + expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('./java_test') + expect(File).to receive(:realpath).with('./java_test').and_return(symlink_path) expect(Facter.value(:java_default_home)).to eql java_home end describe 'java_default_home' do before(:each) do Facter.clear - Facter.fact(:kernel).stubs(:value).returns('Linux') + allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux') end context 'when java found in PATH' do @@ -46,8 +46,8 @@ describe 'java_default_home' do context 'when java not present, return nil' do it do - Facter::Util::Resolution.stubs(:exec) - Facter::Util::Resolution.expects(:which).with('java').at_least(1).returns(false) + allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls + expect(Facter::Util::Resolution).to receive(:which).with('java').at_least(1).and_return(false) expect(Facter.value(:java_default_home)).to be_nil end end diff --git a/spec/unit/facter/java_libjvm_path_spec.rb b/spec/unit/facter/java_libjvm_path_spec.rb index 64dcb18..df2ea28 100644 --- a/spec/unit/facter/java_libjvm_path_spec.rb +++ b/spec/unit/facter/java_libjvm_path_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' describe 'java_libjvm_path' do before(:each) do Facter.clear - Facter.fact(:kernel).stubs(:value).returns('Linux') + allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux') java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64' - Facter.fact(:java_default_home).stubs(:value).returns(java_default_home) - Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so']) + allow(Facter.fact(:java_default_home)).to receive(:value).once.and_return(java_default_home) + allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so']) end context 'when on Linux, return libjvm path' do diff --git a/spec/unit/facter/java_major_version_spec.rb b/spec/unit/facter/java_major_version_spec.rb index b6a3a87..b9ead12 100644 --- a/spec/unit/facter/java_major_version_spec.rb +++ b/spec/unit/facter/java_major_version_spec.rb @@ -7,7 +7,7 @@ describe 'java_major_version' do context 'when java_version fact present, returns major version' do before :each do - Facter.fact(:java_version).stubs(:value).returns('1.7.0_71') + allow(Facter.fact(:java_version)).to receive(:value).and_return('1.7.0_71') end it do expect(Facter.fact(:java_major_version).value).to eq('7') @@ -16,7 +16,7 @@ describe 'java_major_version' do context 'when java not present, returns nil' do before :each do - Facter.fact(:java_version).stubs(:value).returns(nil) + allow(Facter.fact(:java_version)).to receive(:value).and_return('nil') end it do expect(Facter.fact(:java_major_version).value).to be_nil diff --git a/spec/unit/facter/java_patch_level_spec.rb b/spec/unit/facter/java_patch_level_spec.rb index 27b380a..4287b29 100644 --- a/spec/unit/facter/java_patch_level_spec.rb +++ b/spec/unit/facter/java_patch_level_spec.rb @@ -7,7 +7,7 @@ describe 'java_patch_level' do context 'when java is installed returns java patch version extracted from java_version fact' do before :each do - Facter.fact(:java_version).stubs(:value).returns('1.7.0_71') + allow(Facter.fact(:java_version)).to receive(:value).and_return('1.7.0_71') end it do expect(Facter.fact(:java_patch_level).value).to eq('71') @@ -16,7 +16,7 @@ describe 'java_patch_level' do context 'when java is not installed returns nil' do before :each do - Facter.fact(:java_version).stubs(:value).returns(nil) + allow(Facter.fact(:java_version)).to receive(:value).and_return('nil') end it do expect(Facter.fact(:java_patch_level).value).to be_nil diff --git a/spec/unit/facter/java_version_spec.rb b/spec/unit/facter/java_version_spec.rb index 029b840..20f4f52 100644 --- a/spec/unit/facter/java_version_spec.rb +++ b/spec/unit/facter/java_version_spec.rb @@ -18,37 +18,37 @@ describe 'java_version' do context 'when java present, returns java version' do context 'on OpenBSD', with_env: true do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD') end let(:facts) { { operatingsystem: 'OpenBSD' } } it do - Facter::Util::Resolution.expects(:which).with('java').returns('/usr/local/jdk-1.7.0/jre/bin/java') - Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(openjdk_7_output) + expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/usr/local/jdk-1.7.0/jre/bin/java') + expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(openjdk_7_output) expect(Facter.value(:java_version)).to eq('1.7.0_71') end end context 'when on Darwin' do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('Darwin') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin') end let(:facts) { { operatingsystem: 'Darwin' } } it do - Facter::Util::Resolution.expects(:exec).with('/usr/libexec/java_home --failfast 2>&1').returns('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home') - Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output) + expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home') + expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output) expect(Facter.value(:java_version)).to eql '1.7.0_71' end end context 'when on other systems' do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('MyOS') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS') end let(:facts) { { operatingsystem: 'MyOS' } } it do - Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java') - Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output) + expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/path/to/java') + expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output) expect(Facter.value(:java_version)).to eq('1.7.0_71') end end @@ -57,34 +57,34 @@ describe 'java_version' do context 'when java not present, returns nil' do context 'on OpenBSD', with_env: true do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD') end let(:facts) { { operatingsystem: 'OpenBSD' } } it do - Facter::Util::Resolution.stubs(:exec) + allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls expect(Facter.value(:java_version)).to be_nil end end context 'when on Darwin' do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('Darwin') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin') end let(:facts) { { operatingsystem: 'Darwin' } } it do - Facter::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".') + expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".') expect(Facter.value(:java_version)).to be_nil end end context 'when on other systems' do before(:each) do - Facter.fact(:operatingsystem).stubs(:value).returns('MyOS') + allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS') end let(:facts) { { operatingsystem: 'MyOS' } } it do - Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false) + expect(Facter::Util::Resolution).to receive(:which).at_least(1).with('java').and_return(false) expect(Facter.value(:java_version)).to be_nil end end