chefspec 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/Gemfile +6 -0
  4. data/README.md +43 -11
  5. data/Rakefile +48 -8
  6. data/chefspec.gemspec +0 -8
  7. data/examples/cab_package/spec/install_spec.rb +20 -18
  8. data/examples/cab_package/spec/remove_spec.rb +17 -15
  9. data/examples/cached/spec/default_spec.rb +1 -0
  10. data/examples/compile_time/spec/default_spec.rb +2 -0
  11. data/examples/custom_matcher/libraries/matcher.rb +1 -23
  12. data/examples/dnf_package/spec/install_spec.rb +20 -18
  13. data/examples/dnf_package/spec/purge_spec.rb +17 -15
  14. data/examples/dnf_package/spec/remove_spec.rb +17 -15
  15. data/examples/dnf_package/spec/upgrade_spec.rb +17 -15
  16. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +1 -0
  17. data/examples/msu_package/spec/install_spec.rb +20 -18
  18. data/examples/msu_package/spec/remove_spec.rb +17 -15
  19. data/examples/server/spec/exotic_port_spec.rb +15 -2
  20. data/lib/chefspec.rb +1 -8
  21. data/lib/chefspec/api.rb +6 -84
  22. data/lib/chefspec/api/do_nothing.rb +18 -21
  23. data/lib/chefspec/api/include_recipe.rb +20 -23
  24. data/lib/chefspec/api/link.rb +20 -99
  25. data/lib/chefspec/api/notifications.rb +32 -35
  26. data/lib/chefspec/api/reboot.rb +5 -14
  27. data/lib/chefspec/api/render_file.rb +29 -32
  28. data/lib/chefspec/api/state_attrs.rb +22 -25
  29. data/lib/chefspec/api/subscriptions.rb +29 -32
  30. data/lib/chefspec/api/user.rb +216 -219
  31. data/lib/chefspec/extensions.rb +16 -0
  32. data/lib/chefspec/extensions/chef/resource.rb +90 -8
  33. data/lib/chefspec/version.rb +1 -1
  34. data/lib/chefspec/zero_server.rb +20 -18
  35. metadata +3 -313
  36. data/examples/custom_resource/libraries/matchers.rb +0 -5
  37. data/examples/use_inline_resources/libraries/matchers.rb +0 -5
  38. data/features/apt_package.feature +0 -14
  39. data/features/apt_repository.feature +0 -15
  40. data/features/apt_update.feature +0 -13
  41. data/features/attributes.feature +0 -7
  42. data/features/batch.feature +0 -10
  43. data/features/bff_package.feature +0 -12
  44. data/features/cab_package.feature +0 -21
  45. data/features/cached.feature +0 -7
  46. data/features/chef_gem.feature +0 -14
  47. data/features/chocolatey_package.feature +0 -14
  48. data/features/compile_time.feature +0 -7
  49. data/features/cookbook_file.feature +0 -13
  50. data/features/cron.feature +0 -11
  51. data/features/custom_matcher.feature +0 -11
  52. data/features/custom_resource.feature +0 -7
  53. data/features/deploy.feature +0 -12
  54. data/features/directory.feature +0 -11
  55. data/features/dnf_package.feature +0 -26
  56. data/features/do_nothing.feature +0 -10
  57. data/features/dpkg_package.feature +0 -12
  58. data/features/dsc_resource.feature +0 -10
  59. data/features/dsc_script.feature +0 -10
  60. data/features/env.feature +0 -12
  61. data/features/erl_call.feature +0 -10
  62. data/features/execute.feature +0 -10
  63. data/features/exotic_zero_port.feature +0 -7
  64. data/features/expect_exception.feature +0 -12
  65. data/features/file.feature +0 -13
  66. data/features/freebsd_package.feature +0 -11
  67. data/features/gem_package.feature +0 -14
  68. data/features/git.feature +0 -12
  69. data/features/group.feature +0 -13
  70. data/features/guards.feature +0 -10
  71. data/features/heavy_provider_light_resource.feature +0 -10
  72. data/features/homebrew_package.feature +0 -12
  73. data/features/http_request.feature +0 -15
  74. data/features/ifconfig.feature +0 -13
  75. data/features/include_recipe.feature +0 -10
  76. data/features/ips_package.feature +0 -12
  77. data/features/launchd.feature +0 -17
  78. data/features/link.feature +0 -12
  79. data/features/log.feature +0 -10
  80. data/features/macports_package.feature +0 -13
  81. data/features/mdadm.feature +0 -12
  82. data/features/mount.feature +0 -14
  83. data/features/msu_package.feature +0 -23
  84. data/features/multiple_actions.feature +0 -12
  85. data/features/multiple_run_action.feature +0 -7
  86. data/features/notifications.feature +0 -14
  87. data/features/ohai.feature +0 -10
  88. data/features/openbsd_package.feature +0 -12
  89. data/features/osx_profile.feature +0 -13
  90. data/features/package.feature +0 -14
  91. data/features/pacman_package.feature +0 -13
  92. data/features/paludis_package.feature +0 -12
  93. data/features/portage_package.feature +0 -13
  94. data/features/powershell_script.feature +0 -10
  95. data/features/reboot.feature +0 -12
  96. data/features/registry_key.feature +0 -13
  97. data/features/remote_directory.feature +0 -12
  98. data/features/remote_file.feature +0 -13
  99. data/features/render_file.feature +0 -11
  100. data/features/roles.feature +0 -7
  101. data/features/route.feature +0 -11
  102. data/features/rpm_package.feature +0 -12
  103. data/features/ruby_block.feature +0 -11
  104. data/features/script.feature +0 -16
  105. data/features/server.feature +0 -16
  106. data/features/server_on_disk.feature +0 -16
  107. data/features/service.feature +0 -15
  108. data/features/smartos_package.feature +0 -12
  109. data/features/solaris_package.feature +0 -12
  110. data/features/state_attrs.feature +0 -7
  111. data/features/step_definitions/background_steps.rb +0 -7
  112. data/features/step_into.feature +0 -7
  113. data/features/stub_command.feature +0 -7
  114. data/features/stub_data_bag.feature +0 -7
  115. data/features/stub_data_bag_item.feature +0 -7
  116. data/features/stub_node.feature +0 -7
  117. data/features/stub_search.feature +0 -7
  118. data/features/subscribes.feature +0 -14
  119. data/features/subversion.feature +0 -13
  120. data/features/support/env.rb +0 -38
  121. data/features/support/executor.rb +0 -20
  122. data/features/support/exotic_zero_port.rb +0 -3
  123. data/features/support/on_disk.rb +0 -7
  124. data/features/systemd_unit.feature +0 -27
  125. data/features/template.feature +0 -13
  126. data/features/use_inline_resources.feature +0 -7
  127. data/features/user.feature +0 -15
  128. data/features/windows_package.feature +0 -11
  129. data/features/windows_service.feature +0 -16
  130. data/features/yum_package.feature +0 -13
  131. data/features/yum_repository.feature +0 -23
  132. data/features/zypper_package.feature +0 -13
  133. data/lib/chefspec/api/apt_package.rb +0 -192
  134. data/lib/chefspec/api/apt_repository.rb +0 -56
  135. data/lib/chefspec/api/apt_update.rb +0 -53
  136. data/lib/chefspec/api/batch.rb +0 -43
  137. data/lib/chefspec/api/bff_package.rb +0 -154
  138. data/lib/chefspec/api/cab_package.rb +0 -80
  139. data/lib/chefspec/api/chef_gem.rb +0 -191
  140. data/lib/chefspec/api/chocolatey_package.rb +0 -107
  141. data/lib/chefspec/api/cookbook_file.rb +0 -166
  142. data/lib/chefspec/api/cron.rb +0 -80
  143. data/lib/chefspec/api/deploy.rb +0 -117
  144. data/lib/chefspec/api/directory.rb +0 -80
  145. data/lib/chefspec/api/dnf_package.rb +0 -154
  146. data/lib/chefspec/api/dpkg_package.rb +0 -117
  147. data/lib/chefspec/api/dsc_resource.rb +0 -49
  148. data/lib/chefspec/api/dsc_script.rb +0 -37
  149. data/lib/chefspec/api/easy_install_package.rb +0 -154
  150. data/lib/chefspec/api/env.rb +0 -117
  151. data/lib/chefspec/api/erl_call.rb +0 -43
  152. data/lib/chefspec/api/execute.rb +0 -43
  153. data/lib/chefspec/api/file.rb +0 -166
  154. data/lib/chefspec/api/freebsd_package.rb +0 -80
  155. data/lib/chefspec/api/gem_package.rb +0 -191
  156. data/lib/chefspec/api/git.rb +0 -117
  157. data/lib/chefspec/api/group.rb +0 -154
  158. data/lib/chefspec/api/homebrew_package.rb +0 -154
  159. data/lib/chefspec/api/http_request.rb +0 -228
  160. data/lib/chefspec/api/ifconfig.rb +0 -154
  161. data/lib/chefspec/api/ips_package.rb +0 -117
  162. data/lib/chefspec/api/launchd.rb +0 -151
  163. data/lib/chefspec/api/log.rb +0 -43
  164. data/lib/chefspec/api/macports_package.rb +0 -154
  165. data/lib/chefspec/api/mdadm.rb +0 -117
  166. data/lib/chefspec/api/mount.rb +0 -192
  167. data/lib/chefspec/api/msu_package.rb +0 -81
  168. data/lib/chefspec/api/ohai.rb +0 -43
  169. data/lib/chefspec/api/openbsd_package.rb +0 -155
  170. data/lib/chefspec/api/osx_profile.rb +0 -63
  171. data/lib/chefspec/api/package.rb +0 -192
  172. data/lib/chefspec/api/pacman_package.rb +0 -155
  173. data/lib/chefspec/api/paludis_package.rb +0 -155
  174. data/lib/chefspec/api/portage_package.rb +0 -155
  175. data/lib/chefspec/api/powershell_script.rb +0 -43
  176. data/lib/chefspec/api/registry_key.rb +0 -166
  177. data/lib/chefspec/api/remote_directory.rb +0 -120
  178. data/lib/chefspec/api/remote_file.rb +0 -166
  179. data/lib/chefspec/api/route.rb +0 -80
  180. data/lib/chefspec/api/rpm_package.rb +0 -117
  181. data/lib/chefspec/api/ruby_block.rb +0 -68
  182. data/lib/chefspec/api/script.rb +0 -278
  183. data/lib/chefspec/api/service.rb +0 -246
  184. data/lib/chefspec/api/smartos_package.rb +0 -117
  185. data/lib/chefspec/api/solaris_package.rb +0 -117
  186. data/lib/chefspec/api/subversion.rb +0 -154
  187. data/lib/chefspec/api/systemd_unit.rb +0 -353
  188. data/lib/chefspec/api/template.rb +0 -166
  189. data/lib/chefspec/api/windows_package.rb +0 -86
  190. data/lib/chefspec/api/windows_service.rb +0 -286
  191. data/lib/chefspec/api/yum_package.rb +0 -154
  192. data/lib/chefspec/api/yum_repository.rb +0 -130
  193. data/lib/chefspec/api/zypper_package.rb +0 -154
  194. data/spec/unit/api_spec.rb +0 -18
@@ -1,22 +1,24 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'dnf_package::upgrade' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'fedora', version: '25')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::DnfPackage)
4
+ describe 'dnf_package::upgrade' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'fedora', version: '25')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'upgrades a dnf_package with an explicit action' do
10
- expect(chef_run).to upgrade_dnf_package('explicit_action')
11
- expect(chef_run).to_not upgrade_dnf_package('not_explicit_action')
12
- end
10
+ it 'upgrades a dnf_package with an explicit action' do
11
+ expect(chef_run).to upgrade_dnf_package('explicit_action')
12
+ expect(chef_run).to_not upgrade_dnf_package('not_explicit_action')
13
+ end
13
14
 
14
- it 'upgrades a dnf_package with attributes' do
15
- expect(chef_run).to upgrade_dnf_package('with_attributes').with(version: '1.0.0')
16
- expect(chef_run).to_not upgrade_dnf_package('with_attributes').with(version: '1.2.3')
17
- end
15
+ it 'upgrades a dnf_package with attributes' do
16
+ expect(chef_run).to upgrade_dnf_package('with_attributes').with(version: '1.0.0')
17
+ expect(chef_run).to_not upgrade_dnf_package('with_attributes').with(version: '1.2.3')
18
+ end
18
19
 
19
- it 'upgrades a dnf_package when specifying the identity attribute' do
20
- expect(chef_run).to upgrade_dnf_package('identity_attribute')
20
+ it 'upgrades a dnf_package when specifying the identity attribute' do
21
+ expect(chef_run).to upgrade_dnf_package('identity_attribute')
22
+ end
21
23
  end
22
24
  end
@@ -1,3 +1,4 @@
1
+ require 'chefspec'
1
2
  require_relative '../libraries/resource_service'
2
3
 
3
4
  describe 'heavy_provider_light_resource::default' do
@@ -1,26 +1,28 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'msu_package::install' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::MsuPackage)
4
+ describe 'msu_package::install' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'installs a msu_package with the default action' do
10
- expect(chef_run).to install_msu_package('default_action')
11
- expect(chef_run).to_not install_msu_package('not_default_action')
12
- end
10
+ it 'installs a msu_package with the default action' do
11
+ expect(chef_run).to install_msu_package('default_action')
12
+ expect(chef_run).to_not install_msu_package('not_default_action')
13
+ end
13
14
 
14
- it 'installs a msu_package with an explicit action' do
15
- expect(chef_run).to install_msu_package('explicit_action')
16
- end
15
+ it 'installs a msu_package with an explicit action' do
16
+ expect(chef_run).to install_msu_package('explicit_action')
17
+ end
17
18
 
18
- it 'installs a msu_package with attributes' do
19
- expect(chef_run).to install_msu_package('with_attributes').with(version: '1.0.0')
20
- expect(chef_run).to_not install_msu_package('with_attributes').with(version: '1.2.3')
21
- end
19
+ it 'installs a msu_package with attributes' do
20
+ expect(chef_run).to install_msu_package('with_attributes').with(version: '1.0.0')
21
+ expect(chef_run).to_not install_msu_package('with_attributes').with(version: '1.2.3')
22
+ end
22
23
 
23
- it 'installs a msu_package when specifying the identity attribute' do
24
- expect(chef_run).to install_msu_package('identity_attribute')
24
+ it 'installs a msu_package when specifying the identity attribute' do
25
+ expect(chef_run).to install_msu_package('identity_attribute')
26
+ end
25
27
  end
26
28
  end
@@ -1,22 +1,24 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'msu_package::remove' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::MsuPackage)
4
+ describe 'msu_package::remove' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'removes a msu_package with an explicit action' do
10
- expect(chef_run).to remove_msu_package('explicit_action')
11
- expect(chef_run).to_not remove_msu_package('not_explicit_action')
12
- end
10
+ it 'removes a msu_package with an explicit action' do
11
+ expect(chef_run).to remove_msu_package('explicit_action')
12
+ expect(chef_run).to_not remove_msu_package('not_explicit_action')
13
+ end
13
14
 
14
- it 'removes a msu_package with attributes' do
15
- expect(chef_run).to remove_msu_package('with_attributes').with(version: '1.0.0')
16
- expect(chef_run).to_not remove_msu_package('with_attributes').with(version: '1.2.3')
17
- end
15
+ it 'removes a msu_package with attributes' do
16
+ expect(chef_run).to remove_msu_package('with_attributes').with(version: '1.0.0')
17
+ expect(chef_run).to_not remove_msu_package('with_attributes').with(version: '1.2.3')
18
+ end
18
19
 
19
- it 'removes a msu_package when specifying the identity attribute' do
20
- expect(chef_run).to remove_msu_package('identity_attribute')
20
+ it 'removes a msu_package when specifying the identity attribute' do
21
+ expect(chef_run).to remove_msu_package('identity_attribute')
22
+ end
21
23
  end
22
24
  end
@@ -1,6 +1,19 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'server::port' do
4
+ before(:all) do
5
+ @oldsetting = RSpec.configuration.server_runner_port
6
+ RSpec.configuration.server_runner_port = (8900..8910)
7
+ ChefSpec::ZeroServer.nuke!
8
+ ChefSpec::ZeroServer.setup!
9
+ end
10
+
11
+ after(:all) do
12
+ RSpec.configuration.server_runner_port = @oldsetting
13
+ ChefSpec::ZeroServer.nuke!
14
+ ChefSpec::ZeroServer.setup!
15
+ end
16
+
4
17
  let(:chef_run) do
5
18
  ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04')
6
19
  end
@@ -10,8 +23,8 @@ describe 'server::port' do
10
23
  end
11
24
 
12
25
  it 'creates a chef-zero listening on the right port' do
13
- expect(ChefSpec::ZeroServer.server).to be_running?
26
+ expect(ChefSpec::ZeroServer.server).to be_running
14
27
  expect(ChefSpec::ZeroServer.server.port).to be_a(Integer)
15
- expect(8900..9010).to include(ChefSpec::ZeroServer.server.port)
28
+ expect(8890..9010).to include(ChefSpec::ZeroServer.server.port)
16
29
  end
17
30
  end
@@ -42,14 +42,7 @@ module ChefSpec
42
42
  module_function :matchers
43
43
  end
44
44
 
45
- require_relative 'chefspec/extensions/chef/securable'
46
- require_relative 'chefspec/extensions/chef/client'
47
- require_relative 'chefspec/extensions/chef/conditional'
48
- require_relative 'chefspec/extensions/chef/cookbook_uploader'
49
- require_relative 'chefspec/extensions/chef/data_query'
50
- require_relative 'chefspec/extensions/chef/lwrp_base'
51
- require_relative 'chefspec/extensions/chef/resource'
52
- require_relative 'chefspec/extensions/chef/resource/freebsd_package'
45
+ require_relative 'chefspec/extensions'
53
46
 
54
47
  require_relative 'chefspec/mixins/normalize'
55
48
 
@@ -1,96 +1,18 @@
1
1
  module ChefSpec
2
2
  module API
3
- extend self
4
-
5
- def self.included(base)
6
- submodules.each do |child|
7
- base.send(:include, child)
8
- end
9
- end
10
-
11
- private
12
-
13
- #
14
- # WARNING: This is metaprogramming madness. Find all modules who are
15
- # nested beneath this module.
16
- #
17
- # @return [Array<Module>]
18
- #
19
- def submodules
20
- self.constants
21
- .map { |name| const_get(name) }
22
- .select { |const| const.class == Module }
23
- end
3
+ # empty container
24
4
  end
25
5
  end
26
6
 
27
- require_relative 'api/apt_package'
28
- require_relative 'api/apt_update'
29
- require_relative 'api/apt_repository'
30
- require_relative 'api/bff_package'
31
- require_relative 'api/batch'
32
- require_relative 'api/cab_package'
33
- require_relative 'api/chef_gem'
34
- require_relative 'api/chocolatey_package'
35
- require_relative 'api/cookbook_file'
36
- require_relative 'api/cron'
37
- require_relative 'api/deploy'
38
- require_relative 'api/directory'
39
- require_relative 'api/dnf_package'
40
- require_relative 'api/dpkg_package'
7
+ # non-resources
41
8
  require_relative 'api/do_nothing'
42
- require_relative 'api/dsc_resource'
43
- require_relative 'api/dsc_script'
44
- require_relative 'api/easy_install_package'
45
- require_relative 'api/env'
46
- require_relative 'api/erl_call'
47
- require_relative 'api/execute'
48
- require_relative 'api/file'
49
- require_relative 'api/freebsd_package'
50
- require_relative 'api/gem_package'
51
- require_relative 'api/git'
52
- require_relative 'api/group'
53
- require_relative 'api/homebrew_package'
54
- require_relative 'api/http_request'
55
- require_relative 'api/ifconfig'
56
9
  require_relative 'api/include_recipe'
57
- require_relative 'api/ips_package'
58
- require_relative 'api/launchd'
59
- require_relative 'api/link'
60
- require_relative 'api/log'
61
- require_relative 'api/macports_package'
62
- require_relative 'api/mdadm'
63
- require_relative 'api/mount'
64
- require_relative 'api/msu_package'
65
10
  require_relative 'api/notifications'
66
- require_relative 'api/ohai'
67
- require_relative 'api/openbsd_package'
68
- require_relative 'api/osx_profile'
69
- require_relative 'api/package'
70
- require_relative 'api/pacman_package'
71
- require_relative 'api/paludis_package'
72
- require_relative 'api/portage_package'
73
- require_relative 'api/powershell_script'
74
- require_relative 'api/reboot'
75
- require_relative 'api/registry_key'
76
- require_relative 'api/remote_directory'
77
- require_relative 'api/remote_file'
78
11
  require_relative 'api/render_file'
79
- require_relative 'api/route'
80
- require_relative 'api/rpm_package'
81
- require_relative 'api/ruby_block'
82
- require_relative 'api/script'
83
- require_relative 'api/service'
84
- require_relative 'api/smartos_package'
85
- require_relative 'api/solaris_package'
86
12
  require_relative 'api/state_attrs'
87
13
  require_relative 'api/subscriptions'
88
- require_relative 'api/subversion'
89
- require_relative 'api/systemd_unit'
90
- require_relative 'api/template'
14
+
15
+ # hacks and sugar for resources that don't follow the normal pattern
91
16
  require_relative 'api/user'
92
- require_relative 'api/windows_package'
93
- require_relative 'api/windows_service'
94
- require_relative 'api/yum_package'
95
- require_relative 'api/yum_repository'
96
- require_relative 'api/zypper_package'
17
+ require_relative 'api/link'
18
+ require_relative 'api/reboot'
@@ -1,24 +1,21 @@
1
1
  module ChefSpec::API
2
- # @since 3.4.0
3
- module DoNothingMatchers
4
- #
5
- # Assert that a resource in the Chef run does not perform any actions. Given
6
- # a resource with +action :nothing+:
7
- #
8
- # package 'apache2' do
9
- # action :nothing
10
- # end
11
- #
12
- # The Examples section demonstrates the different ways to test that no
13
- # actions were performed on a resource in a Chef run.
14
- #
15
- # @example Assert the +package+ does not perform any actions
16
- #
17
- #
18
- # @return [ChefSpec::Matchers::DoNothingMatcher]
19
- #
20
- def do_nothing
21
- ChefSpec::Matchers::DoNothingMatcher.new
22
- end
2
+ #
3
+ # Assert that a resource in the Chef run does not perform any actions. Given
4
+ # a resource with +action :nothing+:
5
+ #
6
+ # package 'apache2' do
7
+ # action :nothing
8
+ # end
9
+ #
10
+ # The Examples section demonstrates the different ways to test that no
11
+ # actions were performed on a resource in a Chef run.
12
+ #
13
+ # @example Assert the +package+ does not perform any actions
14
+ #
15
+ #
16
+ # @return [ChefSpec::Matchers::DoNothingMatcher]
17
+ #
18
+ def do_nothing
19
+ ChefSpec::Matchers::DoNothingMatcher.new
23
20
  end
24
21
  end
@@ -1,26 +1,23 @@
1
1
  module ChefSpec::API
2
- # @since 0.2.1
3
- module IncludeRecipeMatchers
4
- #
5
- # Assert that a Chef run includes a certain recipe. Given a Chef Recipe
6
- # that calls +include_recipe+:
7
- #
8
- # include_recipe 'apache2::default'
9
- #
10
- # The Examples section demonstrates the different ways to test an
11
- # +include_recipe+ directive with ChefSpec.
12
- #
13
- # @example Assert the +apache2::default+ recipe is included in the Chef run
14
- # expect(chef_run).to include_recipe('apache2::default')
15
- #
16
- #
17
- # @param [String] recipe_name
18
- # the name of the recipe to be included
19
- #
20
- # @return [ChefSpec::Matchers::IncludeRecipeMatcher]
21
- #
22
- def include_recipe(recipe_name)
23
- ChefSpec::Matchers::IncludeRecipeMatcher.new(recipe_name)
24
- end
2
+ #
3
+ # Assert that a Chef run includes a certain recipe. Given a Chef Recipe
4
+ # that calls +include_recipe+:
5
+ #
6
+ # include_recipe 'apache2::default'
7
+ #
8
+ # The Examples section demonstrates the different ways to test an
9
+ # +include_recipe+ directive with ChefSpec.
10
+ #
11
+ # @example Assert the +apache2::default+ recipe is included in the Chef run
12
+ # expect(chef_run).to include_recipe('apache2::default')
13
+ #
14
+ #
15
+ # @param [String] recipe_name
16
+ # the name of the recipe to be included
17
+ #
18
+ # @return [ChefSpec::Matchers::IncludeRecipeMatcher]
19
+ #
20
+ def include_recipe(recipe_name)
21
+ ChefSpec::Matchers::IncludeRecipeMatcher.new(recipe_name)
25
22
  end
26
23
  end
@@ -1,102 +1,23 @@
1
1
  module ChefSpec::API
2
- # @since 1.1.0
3
- module LinkMatchers
4
- ChefSpec.define_matcher :link
5
-
6
- #
7
- # Assert that a +link+ resource exists in the Chef run with the
8
- # action +:create+. Given a Chef Recipe that creates "/tmp" as a
9
- # +link+:
10
- #
11
- # link '/tmp' do
12
- # action :create
13
- # end
14
- #
15
- # The Examples section demonstrates the different ways to test a
16
- # +link+ resource with ChefSpec.
17
- #
18
- # @example Assert that a +link+ was created
19
- # expect(chef_run).to create_link('/tmp')
20
- #
21
- # @example Assert that a +link+ was created with predicate matchers
22
- # expect(chef_run).to create_link('/tmp').with_link_type(:hard)
23
- #
24
- # @example Assert that a +link+ was created with attributes
25
- # expect(chef_run).to create_link('/tmp').with(link_type: :hard)
26
- #
27
- # @example Assert that a +link+ was created using a regex
28
- # expect(chef_run).to create_link('/tmp').with(link_type: Symbol)
29
- #
30
- # @example Assert that a +link+ was _not_ created
31
- # expect(chef_run).to_not create_link('/tmp')
32
- #
33
- #
34
- # @param [String, Regex] resource_name
35
- # the name of the resource to match
36
- #
37
- # @return [ChefSpec::Matchers::ResourceMatcher]
38
- #
39
- def create_link(resource_name)
40
- ChefSpec::Matchers::ResourceMatcher.new(:link, :create, resource_name)
41
- end
42
-
43
- #
44
- # Assert that a +link+ resource exists in the Chef run with the
45
- # action +:delete+. Given a Chef Recipe that deletes "/tmp" as a
46
- # +link+:
47
- #
48
- # link '/tmp' do
49
- # action :delete
50
- # end
51
- #
52
- # The Examples section demonstrates the different ways to test a
53
- # +link+ resource with ChefSpec.
54
- #
55
- # @example Assert that a +link+ was deleted
56
- # expect(chef_run).to delete_link('/tmp')
57
- #
58
- # @example Assert that a +link+ was deleted with predicate matchers
59
- # expect(chef_run).to delete_link('/tmp').with_link_type(:hard)
60
- #
61
- # @example Assert that a +link+ was deleted with attributes
62
- # expect(chef_run).to delete_link('/tmp').with(link_type: :hard)
63
- #
64
- # @example Assert that a +link+ was deleted using a regex
65
- # expect(chef_run).to delete_link('/tmp').with(link_type: Symbol)
66
- #
67
- # @example Assert that a +link+ was _not_ deleted
68
- # expect(chef_run).to_not delete_link('/tmp')
69
- #
70
- #
71
- # @param [String, Regex] resource_name
72
- # the name of the resource to match
73
- #
74
- # @return [ChefSpec::Matchers::ResourceMatcher]
75
- #
76
- def delete_link(resource_name)
77
- ChefSpec::Matchers::ResourceMatcher.new(:link, :delete, resource_name)
78
- end
79
-
80
- #
81
- # Assert that a symlink links to a specific path. This is really
82
- # syntactic sugar for the following:
83
- #
84
- # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
85
- #
86
- # @example Using +link_to+ with a String path
87
- # link = chef_run.link('/tmp/thing')
88
- # expect(link).to link_to('/tmp/other_thing')
89
- #
90
- # @example Using +link_to+ with a regular expression
91
- # expect(link).to link_to(/\/tmp/(.+)/)
92
- #
93
- # @param [String, Regex] path
94
- # the path to link to
95
- #
96
- # @return [ChefSpec::Matchers::LinkToMatcher]
97
- #
98
- def link_to(path)
99
- ChefSpec::Matchers::LinkToMatcher.new(path)
100
- end
2
+ #
3
+ # Assert that a symlink links to a specific path. This is really
4
+ # syntactic sugar for the following:
5
+ #
6
+ # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
7
+ #
8
+ # @example Using +link_to+ with a String path
9
+ # link = chef_run.link('/tmp/thing')
10
+ # expect(link).to link_to('/tmp/other_thing')
11
+ #
12
+ # @example Using +link_to+ with a regular expression
13
+ # expect(link).to link_to(/\/tmp/(.+)/)
14
+ #
15
+ # @param [String, Regex] path
16
+ # the path to link to
17
+ #
18
+ # @return [ChefSpec::Matchers::LinkToMatcher]
19
+ #
20
+ def link_to(path)
21
+ ChefSpec::Matchers::LinkToMatcher.new(path)
101
22
  end
102
23
  end