File: example.rb

package info (click to toggle)
ruby-rspec-puppet 4.0.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,444 kB
  • sloc: ruby: 6,377; makefile: 6
file content (31 lines) | stat: -rw-r--r-- 1,701 bytes parent folder | download
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