Merge pull request #346 from tphoney/MODULES-3958
(MODULES-3958) use rspec-mock and add coverage
This commit is contained in:
@@ -1 +1 @@
|
||||
--relative
|
||||
|
||||
|
||||
14
.sync.yml
14
.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
|
||||
|
||||
@@ -79,5 +79,5 @@
|
||||
],
|
||||
"template-url": "https://github.com/puppetlabs/pdk-templates/",
|
||||
"template-ref": "1.9.0-0-g7281db5",
|
||||
"pdk-version": "1.9.0"
|
||||
"pdk-version": "1.7.1"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
28
spec/spec_helper_local.rb
Normal file
28
spec/spec_helper_local.rb
Normal file
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user