diff --git a/.sync.yml b/.sync.yml index 27bcea3..acd8e4f 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,17 +1,19 @@ --- # yamllint disable rule:line-length .travis.yml: user: camptocamp secure: "ASTRdmLjJNa1NvHy2LRGvmvUeth6W3Fh/alYWvcvI8nDDsdkweHk0iXhcXZwtMQReb0NI5vJiRNXNy7a3XySC4+SP3hfHuDU58H2FqC4Ff0EHRPRHTEiXf7xmN53RxXYXZQvrFfqUb6tIsBNVKVmsYWNe01k8NVKPyYDfQB75PQ=" branches: - master - /^\d/ deploy_to_forge: enabled: true tag_regex: "^\\d" Gemfile: optional: ':development': - gem: 'github_changelog_generator' Rakefile: changelog_version_tag_pattern: '%s' +spec/spec_helper.rb: + mock_with: :rspec diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d3778ca..b367fde 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,57 +1,61 @@ # frozen_string_literal: true +RSpec.configure do |c| + c.mock_with :rspec +end + require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb')) include RspecPuppetFacts default_facts = { puppetversion: Puppet.version, facterversion: Facter.version, } default_fact_files = [ File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml')), File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml')), ] default_fact_files.each do |f| next unless File.exist?(f) && File.readable?(f) && File.size?(f) begin default_facts.merge!(YAML.safe_load(File.read(f), [], [], true)) rescue => e RSpec.configuration.reporter.message "WARNING: Unable to load #{f}: #{e}" end end # read default_facts and merge them over what is provided by facterdb default_facts.each do |fact, value| add_custom_fact fact, value end RSpec.configure do |c| c.default_facts = default_facts c.before :each do # set to strictest setting for testing # by default Puppet runs at warning level Puppet.settings[:strict] = :warning Puppet.settings[:strict_variables] = true end c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT'] c.after(:suite) do end end # Ensures that a module is defined # @param module_name Name of the module def ensure_module_defined(module_name) module_name.split('::').reduce(Object) do |last_module, next_module| last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module, false) last_module.const_get(next_module, false) end end # 'spec_overrides' from sync.yml will appear below this line diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb index 5b6836c..7707fbd 100644 --- a/spec/spec_helper_local.rb +++ b/spec/spec_helper_local.rb @@ -1,25 +1,23 @@ include RspecPuppetFacts add_custom_fact :systemd_internal_services, YAML.safe_load(File.read(File.expand_path('../default_module_facts.yaml', __FILE__))) # HACK: to enable all the expect syntax (like allow_any_instance_of) in rspec-puppet examples RSpec::Mocks::Syntax.enable_expect(RSpec::Puppet::ManifestMatchers) RSpec.configure do |config| - config.mock_with :rspec - config.before :each do # Ensure that we don't accidentally cache facts and environment between # test cases. This requires each example group to explicitly load the # facts being exercised with something like # Facter.collection.loader.load(:ipaddress) Facter.clear Facter.clear_messages RSpec::Mocks.setup end config.after :each do RSpec::Mocks.verify RSpec::Mocks.teardown end end diff --git a/spec/unit/facter/systemd_spec.rb b/spec/unit/facter/systemd_spec.rb index ed7ca78..3004081 100644 --- a/spec/unit/facter/systemd_spec.rb +++ b/spec/unit/facter/systemd_spec.rb @@ -1,36 +1,36 @@ require 'spec_helper' describe Facter.fact(:systemd) do before(:each) { Facter.clear } after(:each) { Facter.clear } describe 'systemd' do context 'returns true when systemd present' do before(:each) do - Facter.fact(:kernel).stubs(:value).returns(:linux) + allow(Facter.fact(:kernel)).to receive(:value).and_return(:linux) Facter.add(:service_provider) { setcode { 'systemd' } } end it { expect(Facter.value(:service_provider)).to eq('systemd') } it { expect(Facter.value(:systemd)).to be true } end context 'returns false when systemd not present' do before(:each) do - Facter.fact(:kernel).stubs(:value).returns(:linux) + allow(Facter.fact(:kernel)).to receive(:value).and_return(:linux) Facter.add(:service_provider) { setcode { 'redhat' } } end it { expect(Facter.value(:service_provider)).to eq('redhat') } it { expect(Facter.value(:systemd)).to be false } end context 'returns nil when kernel is not linux' do before(:each) do - Facter.fact(:kernel).stubs(:value).returns(:windows) + allow(Facter.fact(:kernel)).to receive(:value).and_return(:windows) end it { expect(Facter.value(:systemd)).to be_nil } end end end diff --git a/spec/unit/facter/systemd_version_spec.rb b/spec/unit/facter/systemd_version_spec.rb index 4a882d0..1aa709e 100644 --- a/spec/unit/facter/systemd_version_spec.rb +++ b/spec/unit/facter/systemd_version_spec.rb @@ -1,33 +1,32 @@ require 'spec_helper' describe Facter.fact(:systemd_version) do before(:each) do Facter.clear end describe 'systemd_version' do context 'returns version when systemd fact present' do before(:each) do - Facter.fact(:systemd).stubs(:value).returns(true) + allow(Facter.fact(:systemd)).to receive(:value).and_return(true) end let(:facts) { { systemd: true } } it do - Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").returns('229') + expect(Facter::Util::Resolution).to receive(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").and_return('229') expect(Facter.value(:systemd_version)).to eq('229') end end context 'returns nil when systemd fact not present' do before(:each) do - Facter.fact(:systemd).stubs(:value).returns(false) + allow(Facter.fact(:systemd)).to receive(:value).and_return(false) end let(:facts) { { systemd: false } } it do - Facter::Util::Resolution.stubs(:exec) - Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").never + expect(Facter::Util::Resolution).not_to receive(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'") expect(Facter.value(:systemd_version)).to eq(nil) end end end end