1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
# frozen_string_literal: true
require 'rspec-puppet/support'
require 'rspec-puppet/example/define_example_group'
require 'rspec-puppet/example/class_example_group'
require 'rspec-puppet/example/function_example_group'
require 'rspec-puppet/example/host_example_group'
require 'rspec-puppet/example/type_example_group'
require 'rspec-puppet/example/type_alias_example_group'
require 'rspec-puppet/example/provider_example_group'
RSpec.configure do |c|
def c.rspec_puppet_include(group, type, file_path)
escaped_file_path = Regexp.compile(file_path.join('[\\\/]'))
include group, type: type, file_path: lambda { |file_path, metadata|
metadata[:type].nil? && escaped_file_path =~ file_path
}
end
c.rspec_puppet_include RSpec::Puppet::DefineExampleGroup, :define, %w[spec defines]
c.rspec_puppet_include RSpec::Puppet::ClassExampleGroup, :class, %w[spec classes]
c.rspec_puppet_include RSpec::Puppet::FunctionExampleGroup, :puppet_function, %w[spec functions]
c.rspec_puppet_include RSpec::Puppet::HostExampleGroup, :host, %w[spec hosts]
c.rspec_puppet_include RSpec::Puppet::TypeExampleGroup, :type, %w[spec types]
c.rspec_puppet_include RSpec::Puppet::TypeAliasExampleGroup, :type_alias, %w[spec type_aliases]
c.rspec_puppet_include RSpec::Puppet::ProviderExampleGroup, :provider, %w[spec providers]
# Hook for each example group type to remove any caches or instance variables, since they will remain
# and cause a memory leak. Can't be assigned per type by :file_path, so check for its presence.
c.after(:each) { rspec_puppet_cleanup if respond_to?(:rspec_puppet_cleanup) }
end
|