chefspec 7.2.1 → 7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +21 -13
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile +14 -10
  5. data/README.md +322 -1025
  6. data/README_old.md +1291 -0
  7. data/Rakefile +8 -3
  8. data/examples/apt_package/spec/install_spec.rb +1 -1
  9. data/examples/apt_package/spec/lock_spec.rb +1 -1
  10. data/examples/apt_package/spec/purge_spec.rb +1 -1
  11. data/examples/apt_package/spec/reconfig_spec.rb +1 -1
  12. data/examples/apt_package/spec/remove_spec.rb +1 -1
  13. data/examples/apt_package/spec/unlock_spec.rb +1 -1
  14. data/examples/apt_package/spec/upgrade_spec.rb +1 -1
  15. data/examples/apt_repository/spec/add_spec.rb +1 -1
  16. data/examples/apt_repository/spec/remove_spec.rb +1 -1
  17. data/examples/apt_update/spec/periodic_spec.rb +1 -1
  18. data/examples/apt_update/spec/update_spec.rb +1 -1
  19. data/examples/attributes/spec/default_spec.rb +1 -1
  20. data/examples/batch/spec/run_spec.rb +1 -1
  21. data/examples/cab_package/spec/install_spec.rb +1 -1
  22. data/examples/cab_package/spec/remove_spec.rb +1 -1
  23. data/examples/cached/spec/default_spec.rb +1 -1
  24. data/examples/chef_gem/spec/install_spec.rb +1 -1
  25. data/examples/chef_gem/spec/purge_spec.rb +1 -1
  26. data/examples/chef_gem/spec/reconfig_spec.rb +1 -1
  27. data/examples/chef_gem/spec/remove_spec.rb +1 -1
  28. data/examples/chef_gem/spec/upgrade_spec.rb +1 -1
  29. data/examples/chocolatey_package/spec/install_spec.rb +1 -1
  30. data/examples/chocolatey_package/spec/remove_spec.rb +1 -1
  31. data/examples/chocolatey_package/spec/upgrade_spec.rb +1 -1
  32. data/examples/compile_time/spec/default_spec.rb +1 -1
  33. data/examples/cookbook_file/spec/create_if_missing_spec.rb +1 -1
  34. data/examples/cookbook_file/spec/create_spec.rb +1 -1
  35. data/examples/cookbook_file/spec/delete_spec.rb +1 -1
  36. data/examples/cookbook_file/spec/touch_spec.rb +1 -1
  37. data/examples/core/recipes/default.rb +1 -0
  38. data/examples/core/spec/default_spec.rb +7 -0
  39. data/examples/core/spec/non_recipe_spec.rb +5 -0
  40. data/examples/cron/spec/create_spec.rb +1 -1
  41. data/examples/cron/spec/delete_spec.rb +1 -1
  42. data/examples/custom_matcher/spec/install_spec.rb +1 -1
  43. data/examples/custom_matcher/spec/remove_spec.rb +1 -1
  44. data/examples/custom_resource/spec/default_spec.rb +1 -1
  45. data/examples/custom_resource_block/resources/default.rb +3 -0
  46. data/examples/custom_resource_block/spec/default_spec.rb +10 -0
  47. data/examples/directory/spec/create_spec.rb +1 -1
  48. data/examples/directory/spec/delete_spec.rb +1 -1
  49. data/examples/dnf_package/spec/install_spec.rb +1 -1
  50. data/examples/dnf_package/spec/purge_spec.rb +1 -1
  51. data/examples/dnf_package/spec/remove_spec.rb +1 -1
  52. data/examples/dnf_package/spec/upgrade_spec.rb +1 -1
  53. data/examples/do_nothing/spec/default_spec.rb +1 -1
  54. data/examples/dpkg_package/spec/install_spec.rb +1 -1
  55. data/examples/dpkg_package/spec/purge_spec.rb +1 -1
  56. data/examples/dpkg_package/spec/remove_spec.rb +1 -1
  57. data/examples/dsc_resource/spec/run_spec.rb +1 -1
  58. data/examples/dsc_script/spec/run_spec.rb +1 -1
  59. data/examples/env/spec/create_spec.rb +1 -1
  60. data/examples/env/spec/delete_spec.rb +1 -1
  61. data/examples/env/spec/modify_spec.rb +1 -1
  62. data/examples/execute/spec/run_spec.rb +1 -1
  63. data/examples/expect_exception/spec/compile_error_spec.rb +1 -1
  64. data/examples/expect_exception/spec/converge_error_spec.rb +1 -1
  65. data/examples/expect_exception/spec/no_error_spec.rb +1 -1
  66. data/examples/file/spec/create_if_missing_spec.rb +1 -1
  67. data/examples/file/spec/create_spec.rb +1 -1
  68. data/examples/file/spec/delete_spec.rb +1 -1
  69. data/examples/file/spec/touch_spec.rb +1 -1
  70. data/examples/freebsd_package/spec/install_spec.rb +1 -1
  71. data/examples/freebsd_package/spec/remove_spec.rb +1 -1
  72. data/examples/gem_package/spec/install_spec.rb +1 -1
  73. data/examples/gem_package/spec/purge_spec.rb +1 -1
  74. data/examples/gem_package/spec/reconfig_spec.rb +1 -1
  75. data/examples/gem_package/spec/remove_spec.rb +1 -1
  76. data/examples/gem_package/spec/upgrade_spec.rb +1 -1
  77. data/examples/git/spec/checkout_spec.rb +1 -1
  78. data/examples/git/spec/export_spec.rb +1 -1
  79. data/examples/git/spec/sync_spec.rb +1 -1
  80. data/examples/group/spec/create_spec.rb +1 -1
  81. data/examples/group/spec/manage_spec.rb +1 -1
  82. data/examples/group/spec/modify_spec.rb +1 -1
  83. data/examples/group/spec/remove_spec.rb +1 -1
  84. data/examples/guards/spec/default_spec.rb +1 -1
  85. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +1 -1
  86. data/examples/homebrew_package/spec/install_spec.rb +1 -1
  87. data/examples/homebrew_package/spec/purge_spec.rb +1 -1
  88. data/examples/homebrew_package/spec/remove_spec.rb +1 -1
  89. data/examples/homebrew_package/spec/upgrade_spec.rb +1 -1
  90. data/examples/http_request/spec/delete_spec.rb +1 -1
  91. data/examples/http_request/spec/get_spec.rb +1 -1
  92. data/examples/http_request/spec/head_spec.rb +1 -1
  93. data/examples/http_request/spec/options_spec.rb +1 -1
  94. data/examples/http_request/spec/post_spec.rb +1 -1
  95. data/examples/http_request/spec/put_spec.rb +1 -1
  96. data/examples/ifconfig/spec/add_spec.rb +1 -1
  97. data/examples/ifconfig/spec/delete_spec.rb +1 -1
  98. data/examples/ifconfig/spec/disable_spec.rb +1 -1
  99. data/examples/ifconfig/spec/enable_spec.rb +1 -1
  100. data/examples/include_recipe/spec/default_spec.rb +1 -1
  101. data/examples/ips_package/spec/install_spec.rb +1 -1
  102. data/examples/ips_package/spec/remove_spec.rb +1 -1
  103. data/examples/ips_package/spec/upgrade_spec.rb +1 -1
  104. data/examples/launchd/spec/create_if_missing_spec.rb +1 -1
  105. data/examples/launchd/spec/create_spec.rb +1 -1
  106. data/examples/launchd/spec/delete_spec.rb +1 -1
  107. data/examples/launchd/spec/disable_spec.rb +1 -1
  108. data/examples/launchd/spec/enable_spec.rb +1 -1
  109. data/examples/library_patch/libraries/default.rb +5 -0
  110. data/examples/library_patch/recipes/default.rb +1 -0
  111. data/examples/library_patch/spec/default_spec.rb +14 -0
  112. data/examples/link/spec/create_spec.rb +1 -1
  113. data/examples/link/spec/delete_spec.rb +1 -1
  114. data/examples/link/spec/link_to_spec.rb +1 -1
  115. data/examples/log/spec/write_spec.rb +1 -1
  116. data/examples/macports_package/spec/install_spec.rb +1 -1
  117. data/examples/macports_package/spec/purge_spec.rb +1 -1
  118. data/examples/macports_package/spec/remove_spec.rb +1 -1
  119. data/examples/macports_package/spec/upgrade_spec.rb +1 -1
  120. data/examples/mdadm/spec/assemble_spec.rb +1 -1
  121. data/examples/mdadm/spec/create_spec.rb +1 -1
  122. data/examples/mdadm/spec/stop_spec.rb +1 -1
  123. data/examples/mount/spec/disable_spec.rb +1 -1
  124. data/examples/mount/spec/enable_spec.rb +1 -1
  125. data/examples/mount/spec/mount_spec.rb +1 -1
  126. data/examples/mount/spec/remount_spec.rb +1 -1
  127. data/examples/mount/spec/umount_spec.rb +1 -1
  128. data/examples/msu_package/spec/install_spec.rb +1 -1
  129. data/examples/msu_package/spec/remove_spec.rb +1 -1
  130. data/examples/multiple_actions/spec/default_spec.rb +1 -1
  131. data/examples/multiple_actions/spec/reversed_spec.rb +1 -1
  132. data/examples/multiple_actions/spec/sequential_spec.rb +1 -1
  133. data/examples/multiple_run_action/spec/default_spec.rb +1 -1
  134. data/examples/nothing_matcher/spec/default_spec.rb +1 -1
  135. data/examples/notifications/spec/before_spec.rb +1 -1
  136. data/examples/notifications/spec/chained_spec.rb +1 -1
  137. data/examples/notifications/spec/default_spec.rb +1 -1
  138. data/examples/notifications/spec/delayed_spec.rb +1 -1
  139. data/examples/notifications/spec/immediately_spec.rb +1 -1
  140. data/examples/ohai/spec/reload_spec.rb +1 -1
  141. data/examples/osx_profile/spec/install_spec.rb +1 -1
  142. data/examples/osx_profile/spec/remove_spec.rb +1 -1
  143. data/examples/package/spec/install_spec.rb +1 -1
  144. data/examples/package/spec/lock_spec.rb +1 -1
  145. data/examples/package/spec/purge_spec.rb +1 -1
  146. data/examples/package/spec/reconfig_spec.rb +1 -1
  147. data/examples/package/spec/remove_spec.rb +1 -1
  148. data/examples/package/spec/unlock_spec.rb +1 -1
  149. data/examples/package/spec/upgrade_spec.rb +1 -1
  150. data/examples/pacman_package/spec/install_spec.rb +1 -1
  151. data/examples/pacman_package/spec/purge_spec.rb +1 -1
  152. data/examples/pacman_package/spec/remove_spec.rb +1 -1
  153. data/examples/pacman_package/spec/upgrade_spec.rb +1 -1
  154. data/examples/paludis_package/spec/install_spec.rb +1 -1
  155. data/examples/paludis_package/spec/purge_spec.rb +1 -1
  156. data/examples/paludis_package/spec/remove_spec.rb +1 -1
  157. data/examples/paludis_package/spec/upgrade_spec.rb +1 -1
  158. data/examples/portage_package/spec/install_spec.rb +1 -1
  159. data/examples/portage_package/spec/purge_spec.rb +1 -1
  160. data/examples/portage_package/spec/remove_spec.rb +1 -1
  161. data/examples/portage_package/spec/upgrade_spec.rb +1 -1
  162. data/examples/powershell_script/spec/run_spec.rb +1 -1
  163. data/examples/reboot/spec/cancel_spec.rb +1 -1
  164. data/examples/reboot/spec/now_spec.rb +1 -1
  165. data/examples/reboot/spec/request_spec.rb +1 -1
  166. data/examples/recipe_block/metadata.rb +1 -0
  167. data/examples/recipe_block/spec/recipe_block_spec.rb +34 -0
  168. data/examples/recipe_block/templates/apache2.conf.erb +1 -0
  169. data/examples/registry_key/spec/create_if_missing_spec.rb +1 -1
  170. data/examples/registry_key/spec/create_spec.rb +1 -1
  171. data/examples/registry_key/spec/delete_key_spec.rb +1 -1
  172. data/examples/registry_key/spec/delete_spec.rb +1 -1
  173. data/examples/remote_directory/spec/create_if_missing_spec.rb +1 -1
  174. data/examples/remote_directory/spec/create_spec.rb +1 -1
  175. data/examples/remote_directory/spec/delete_spec.rb +1 -1
  176. data/examples/remote_file/spec/create_if_missing_spec.rb +1 -1
  177. data/examples/remote_file/spec/create_spec.rb +1 -1
  178. data/examples/remote_file/spec/delete_spec.rb +1 -1
  179. data/examples/remote_file/spec/touch_spec.rb +1 -1
  180. data/examples/render_file/spec/default_spec.rb +12 -1
  181. data/examples/render_file/spec/template_helpers_spec.rb +1 -1
  182. data/examples/roles/spec/default_spec.rb +1 -1
  183. data/examples/route/spec/add_spec.rb +1 -1
  184. data/examples/route/spec/delete_spec.rb +1 -1
  185. data/examples/rpm_package/spec/install_spec.rb +1 -1
  186. data/examples/rpm_package/spec/remove_spec.rb +1 -1
  187. data/examples/rpm_package/spec/upgrade_spec.rb +1 -1
  188. data/examples/ruby_block/spec/create_spec.rb +1 -1
  189. data/examples/ruby_block/spec/run_spec.rb +1 -1
  190. data/examples/runner/recipes/default.rb +1 -0
  191. data/examples/runner/spec/default_spec.rb +11 -0
  192. data/examples/script/spec/run_bash_spec.rb +1 -1
  193. data/examples/script/spec/run_csh_spec.rb +1 -1
  194. data/examples/script/spec/run_ksh_spec.rb +1 -1
  195. data/examples/script/spec/run_perl_spec.rb +1 -1
  196. data/examples/script/spec/run_python_spec.rb +1 -1
  197. data/examples/script/spec/run_ruby_spec.rb +1 -1
  198. data/examples/script/spec/run_script_spec.rb +1 -1
  199. data/examples/server/spec/client_spec.rb +1 -1
  200. data/examples/server/spec/data_bag_spec.rb +1 -1
  201. data/examples/server/spec/environment_spec.rb +1 -1
  202. data/examples/server/spec/exotic_port_spec.rb +1 -1
  203. data/examples/server/spec/node_spec.rb +4 -4
  204. data/examples/server/spec/render_with_cached_spec.rb +1 -1
  205. data/examples/server/spec/role_spec.rb +1 -1
  206. data/examples/server/spec/search_spec.rb +1 -1
  207. data/examples/service/spec/disable_spec.rb +1 -1
  208. data/examples/service/spec/enable_spec.rb +1 -1
  209. data/examples/service/spec/reload_spec.rb +1 -1
  210. data/examples/service/spec/restart_spec.rb +1 -1
  211. data/examples/service/spec/start_spec.rb +1 -1
  212. data/examples/service/spec/stop_spec.rb +1 -1
  213. data/examples/smartos_package/spec/install_spec.rb +1 -1
  214. data/examples/smartos_package/spec/remove_spec.rb +1 -1
  215. data/examples/smartos_package/spec/upgrade_spec.rb +1 -1
  216. data/examples/solaris_package/spec/install_spec.rb +1 -1
  217. data/examples/solaris_package/spec/remove_spec.rb +1 -1
  218. data/examples/solaris_package/spec/upgrade_spec.rb +1 -1
  219. data/examples/spec_attributes/attributes/default.rb +1 -0
  220. data/examples/spec_attributes/recipes/default.rb +5 -0
  221. data/examples/spec_attributes/spec/default_spec.rb +54 -0
  222. data/examples/spec_platform/recipes/default.rb +3 -0
  223. data/examples/spec_platform/spec/default_spec.rb +36 -0
  224. data/examples/spec_step_into/recipes/default.rb +3 -0
  225. data/examples/spec_step_into/resources/one.rb +3 -0
  226. data/examples/spec_step_into/resources/two.rb +3 -0
  227. data/examples/spec_step_into/spec/default_spec.rb +50 -0
  228. data/examples/state_attrs/spec/default_spec.rb +1 -1
  229. data/examples/step_into/spec/default_spec.rb +2 -2
  230. data/examples/stub_command/spec/default_spec.rb +1 -1
  231. data/examples/stub_data_bag/spec/default_spec.rb +1 -1
  232. data/examples/stub_data_bag_item/spec/default_spec.rb +1 -1
  233. data/examples/stub_node/spec/default_spec.rb +1 -1
  234. data/examples/stub_search/spec/block_spec.rb +1 -1
  235. data/examples/stub_search/spec/default_spec.rb +1 -1
  236. data/examples/stubs_for/resources/default.rb +20 -0
  237. data/examples/stubs_for/resources/old.rb +26 -0
  238. data/examples/stubs_for/spec/default_spec.rb +240 -0
  239. data/examples/subscribes/spec/before_spec.rb +1 -1
  240. data/examples/subscribes/spec/chained_spec.rb +1 -1
  241. data/examples/subscribes/spec/default_spec.rb +1 -1
  242. data/examples/subscribes/spec/delayed_spec.rb +1 -1
  243. data/examples/subscribes/spec/immediately_spec.rb +1 -1
  244. data/examples/subversion/spec/checkout_spec.rb +1 -1
  245. data/examples/subversion/spec/export_spec.rb +1 -1
  246. data/examples/subversion/spec/force_export_spec.rb +1 -1
  247. data/examples/subversion/spec/sync_spec.rb +1 -1
  248. data/examples/systemd_unit/spec/create_spec.rb +1 -1
  249. data/examples/systemd_unit/spec/delete_spec.rb +1 -1
  250. data/examples/systemd_unit/spec/disable_spec.rb +1 -1
  251. data/examples/systemd_unit/spec/enable_spec.rb +1 -1
  252. data/examples/systemd_unit/spec/mask_spec.rb +1 -1
  253. data/examples/systemd_unit/spec/reload_or_restart_spec.rb +1 -1
  254. data/examples/systemd_unit/spec/reload_or_try_restart_spec.rb +1 -1
  255. data/examples/systemd_unit/spec/restart_spec.rb +1 -1
  256. data/examples/systemd_unit/spec/start_spec.rb +1 -1
  257. data/examples/systemd_unit/spec/stop_spec.rb +1 -1
  258. data/examples/systemd_unit/spec/try_restart_spec.rb +1 -1
  259. data/examples/systemd_unit/spec/unmask_spec.rb +1 -1
  260. data/examples/template/spec/create_if_missing_spec.rb +1 -1
  261. data/examples/template/spec/create_spec.rb +1 -1
  262. data/examples/template/spec/delete_spec.rb +1 -1
  263. data/examples/template/spec/touch_spec.rb +1 -1
  264. data/examples/use_inline_resources/spec/default_spec.rb +1 -1
  265. data/examples/user/spec/create_spec.rb +1 -1
  266. data/examples/user/spec/lock_spec.rb +1 -1
  267. data/examples/user/spec/manage_spec.rb +1 -1
  268. data/examples/user/spec/modify_spec.rb +1 -1
  269. data/examples/user/spec/remove_spec.rb +1 -1
  270. data/examples/user/spec/unlock_spec.rb +1 -1
  271. data/examples/windows_package/spec/install_spec.rb +1 -1
  272. data/examples/windows_package/spec/remove_spec.rb +1 -1
  273. data/examples/windows_service/spec/configure_startup_spec.rb +1 -1
  274. data/examples/windows_service/spec/disable_spec.rb +1 -1
  275. data/examples/windows_service/spec/enable_spec.rb +1 -1
  276. data/examples/windows_service/spec/reload_spec.rb +1 -1
  277. data/examples/windows_service/spec/restart_spec.rb +1 -1
  278. data/examples/windows_service/spec/start_spec.rb +1 -1
  279. data/examples/windows_service/spec/stop_spec.rb +1 -1
  280. data/examples/yum_package/spec/install_spec.rb +1 -1
  281. data/examples/yum_package/spec/lock_spec.rb +1 -1
  282. data/examples/yum_package/spec/purge_spec.rb +1 -1
  283. data/examples/yum_package/spec/remove_spec.rb +1 -1
  284. data/examples/yum_package/spec/unlock_spec.rb +1 -1
  285. data/examples/yum_package/spec/upgrade_spec.rb +1 -1
  286. data/examples/yum_repository/spec/add_spec.rb +1 -1
  287. data/examples/yum_repository/spec/create_spec.rb +1 -1
  288. data/examples/yum_repository/spec/delete_spec.rb +1 -1
  289. data/examples/yum_repository/spec/makecache_spec.rb +1 -1
  290. data/examples/yum_repository/spec/remove_spec.rb +1 -1
  291. data/examples/zypper_package/spec/install_spec.rb +1 -1
  292. data/examples/zypper_package/spec/lock_spec.rb +1 -1
  293. data/examples/zypper_package/spec/purge_spec.rb +1 -1
  294. data/examples/zypper_package/spec/remove_spec.rb +1 -1
  295. data/examples/zypper_package/spec/unlock_spec.rb +1 -1
  296. data/examples/zypper_package/spec/upgrade_spec.rb +1 -1
  297. data/lib/chefspec.rb +1 -1
  298. data/lib/chefspec/api.rb +33 -14
  299. data/lib/chefspec/api/core.rb +195 -0
  300. data/lib/chefspec/api/described.rb +55 -0
  301. data/lib/chefspec/api/do_nothing.rb +24 -19
  302. data/lib/chefspec/api/include_recipe.rb +26 -21
  303. data/lib/chefspec/api/link.rb +26 -21
  304. data/lib/chefspec/api/notifications.rb +38 -33
  305. data/lib/chefspec/api/reboot.rb +11 -6
  306. data/lib/chefspec/api/render_file.rb +35 -30
  307. data/lib/chefspec/api/state_attrs.rb +28 -23
  308. data/lib/chefspec/api/stubs.rb +183 -0
  309. data/lib/chefspec/api/stubs_for.rb +134 -0
  310. data/lib/chefspec/api/subscriptions.rb +35 -30
  311. data/lib/chefspec/api/user.rb +222 -217
  312. data/lib/chefspec/berkshelf.rb +1 -1
  313. data/lib/chefspec/deprecations.rb +2 -11
  314. data/lib/chefspec/errors.rb +1 -0
  315. data/lib/chefspec/extensions.rb +4 -1
  316. data/lib/chefspec/extensions/chef/client.rb +3 -4
  317. data/lib/chefspec/extensions/chef/conditional.rb +3 -2
  318. data/lib/chefspec/extensions/chef/cookbook/gem_installer.rb +25 -28
  319. data/lib/chefspec/extensions/chef/cookbook_loader.rb +13 -0
  320. data/lib/chefspec/extensions/chef/cookbook_uploader.rb +3 -2
  321. data/lib/chefspec/extensions/chef/data_query.rb +5 -8
  322. data/lib/chefspec/extensions/chef/lwrp_base.rb +17 -21
  323. data/lib/chefspec/extensions/chef/provider.rb +36 -0
  324. data/lib/chefspec/extensions/chef/resource.rb +51 -4
  325. data/lib/chefspec/extensions/chef/resource/freebsd_package.rb +13 -16
  326. data/lib/chefspec/extensions/chef/run_context/cookbook_compiler.rb +64 -0
  327. data/lib/chefspec/matchers/render_file_matcher.rb +36 -26
  328. data/lib/chefspec/matchers/resource_matcher.rb +1 -1
  329. data/lib/chefspec/rspec.rb +3 -8
  330. data/lib/chefspec/runner.rb +8 -0
  331. data/lib/chefspec/server_methods.rb +1 -1
  332. data/lib/chefspec/server_runner.rb +13 -9
  333. data/lib/chefspec/solo_runner.rb +136 -32
  334. data/lib/chefspec/version.rb +1 -1
  335. data/spec/unit/deprecations_spec.rb +1 -26
  336. data/spec/unit/macros_spec.rb +14 -14
  337. data/spec/unit/matchers/render_file_matcher_spec.rb +8 -1
  338. data/spec/unit/solo_runner_spec.rb +3 -3
  339. data/templates/errors/may_need_to_specify_platform.erb +1 -1
  340. data/templates/errors/shell_out_not_stubbed.erb +10 -0
  341. metadata +38 -4
  342. data/lib/chefspec/macros.rb +0 -222
@@ -1,3 +1,3 @@
1
1
  module ChefSpec
2
- VERSION = '7.2.1'
2
+ VERSION = '7.3.0'
3
3
  end
@@ -27,31 +27,6 @@ describe ChefSpec::Runner do
27
27
  end
28
28
 
29
29
  end
30
-
31
- describe '#new' do
32
- before do
33
- allow(ChefSpec::SoloRunner).to receive(:new)
34
- end
35
-
36
- it 'prints a deprecation' do
37
- expect(ChefSpec::Runner).to receive(:deprecated)
38
- .with("`ChefSpec::Runner' is deprecated. Please use" \
39
- " `ChefSpec::SoloRunner' or `ChefSpec::ServerRunner' instead.")
40
- ChefSpec::Runner.new
41
- end
42
-
43
- it 'calls SoloRunner#new with no args' do
44
- expect(ChefSpec::SoloRunner).to receive(:new).with(no_args()).once
45
- ChefSpec::Runner.new
46
- end
47
-
48
- it 'calls SoloRunner#new with args' do
49
- args = [ 'args' ]
50
- expect(ChefSpec::SoloRunner).to receive(:new).with(*args).once
51
- ChefSpec::Runner.new(*args)
52
- end
53
-
54
- end
55
30
  end
56
31
 
57
32
  describe ChefSpec::Server do
@@ -62,7 +37,7 @@ describe ChefSpec::Server do
62
37
  it 'prints a deprecation for any method called' do
63
38
  expect(ChefSpec::Server).to receive(:deprecated)
64
39
  .with("`ChefSpec::Server.any_method' is deprecated. There is no longer" \
65
- " a global Chef Server instance. Please use a ChefSpec::ServerRunner" \
40
+ " a global Chef Server instance. Please use a ChefSpec::SoloRunner" \
66
41
  " instead. More documentation can be found in the ChefSpec README."
67
42
  )
68
43
  expect {
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ChefSpec::Macros do
3
+ describe ChefSpec::API::Stubs do
4
4
  describe '#stub_command' do
5
5
  let(:command_stub) { double('command') }
6
6
 
7
7
  it 'adds the command to the command registry' do
8
8
  allow(ChefSpec::Stubs::CommandStub).to receive(:new).and_return(command_stub)
9
- described_class.stub_command('echo "hello"')
9
+ stub_command('echo "hello"')
10
10
 
11
11
  expect(ChefSpec::Stubs::CommandRegistry.stubs).to include(command_stub)
12
12
  end
@@ -17,7 +17,7 @@ describe ChefSpec::Macros do
17
17
 
18
18
  it 'adds the query to the search registry' do
19
19
  allow(ChefSpec::Stubs::SearchStub).to receive(:new).and_return(search_stub)
20
- described_class.stub_search(:node, '*:*')
20
+ stub_search(:node, '*:*')
21
21
 
22
22
  expect(ChefSpec::Stubs::SearchRegistry.stubs).to include(search_stub)
23
23
  end
@@ -28,7 +28,7 @@ describe ChefSpec::Macros do
28
28
 
29
29
  it 'adds the query to the data_bag registry' do
30
30
  allow(ChefSpec::Stubs::DataBagStub).to receive(:new).and_return(data_bag_stub)
31
- described_class.stub_data_bag(:users)
31
+ stub_data_bag(:users)
32
32
 
33
33
  expect(ChefSpec::Stubs::DataBagRegistry.stubs).to include(data_bag_stub)
34
34
  end
@@ -39,7 +39,7 @@ describe ChefSpec::Macros do
39
39
 
40
40
  it 'adds the query to the data_bag_item registry' do
41
41
  allow(ChefSpec::Stubs::DataBagItemStub).to receive(:new).and_return(data_bag_item_stub)
42
- described_class.stub_data_bag_item(:users, 'id')
42
+ stub_data_bag_item(:users, 'id')
43
43
 
44
44
  expect(ChefSpec::Stubs::DataBagItemRegistry.stubs).to include(data_bag_item_stub)
45
45
  end
@@ -47,43 +47,43 @@ describe ChefSpec::Macros do
47
47
 
48
48
  describe '#stub_node' do
49
49
  it 'returns a Chef::Node' do
50
- expect(described_class.stub_node).to be_a(Chef::Node)
50
+ expect(stub_node).to be_a(Chef::Node)
51
51
  end
52
52
 
53
53
  it 'defaults the node name to `node.example`' do
54
- node = described_class.stub_node
54
+ node = stub_node
55
55
  expect(node.name).to eq('node.example')
56
56
  end
57
57
 
58
58
  it 'sets the node name when given' do
59
- node = described_class.stub_node('example.com')
59
+ node = stub_node('example.com')
60
60
  expect(node.name).to eq('example.com')
61
61
  end
62
62
 
63
63
  it 'sets the automatic attributes' do
64
- node = described_class.stub_node
64
+ node = stub_node
65
65
  expect(node.automatic).to eq(Fauxhai.mock.data)
66
66
  end
67
67
 
68
68
  it 'sets the automatic attributes with ohai overrides' do
69
- node = described_class.stub_node('node.example', ohai: { ipaddress: '1.2.3.4' })
69
+ node = stub_node('node.example', ohai: { ipaddress: '1.2.3.4' })
70
70
  expect(node['ipaddress']).to eq('1.2.3.4')
71
71
  end
72
72
 
73
73
  it 'sets the automatic attributes for a specific platform and version' do
74
- node = described_class.stub_node('node.example', platform: 'ubuntu', version: '16.04')
75
- expect(node.automatic).to eq(Fauxhai.mock(platform: 'ubuntu', version: '16.04').data)
74
+ node = stub_node('node.example', platform: 'ubuntu', version: '18.04')
75
+ expect(node.automatic).to eq(Fauxhai.mock(platform: 'ubuntu', version: '18.04').data)
76
76
  end
77
77
 
78
78
  it 'sets the automatic attributes from a JSON data path' do
79
79
  allow(File).to receive(:exist?).with('/path/to/json').and_return(true)
80
80
  allow(File).to receive(:read).with('/path/to/json').and_return('{ "ipaddress": "1.2.3.4" }')
81
- node = described_class.stub_node('node.example', path: '/path/to/json')
81
+ node = stub_node('node.example', path: '/path/to/json')
82
82
  expect(node['ipaddress']).to eq('1.2.3.4')
83
83
  end
84
84
 
85
85
  it 'yields a block' do
86
- expect { |block| described_class.stub_node(&block) }.to yield_with_args(Chef::Node)
86
+ expect { |block| stub_node(&block) }.to yield_with_args(Chef::Node)
87
87
  end
88
88
  end
89
89
  end
@@ -12,7 +12,7 @@ describe ChefSpec::Matchers::RenderFileMatcher do
12
12
  expect(
13
13
  subject.with_content do |content|
14
14
  'Does not raise ArgumentError'
15
- end.expected_content.call
15
+ end.expected_content.first.call
16
16
  ).to eq('Does not raise ArgumentError')
17
17
  end
18
18
  end
@@ -38,6 +38,13 @@ describe ChefSpec::Matchers::RenderFileMatcher do
38
38
  subject.matches?(chef_run)
39
39
  expect(subject.description).to eq(%Q(render file "#{path}"))
40
40
  end
41
+
42
+ it 'has the right value when with_content is chained' do
43
+ subject.matches?(chef_run)
44
+ expect(
45
+ subject.with_content('foo').with_content('bar').description
46
+ ).to eq(%Q(render file "#{path}" with content "foo" with content "bar"))
47
+ end
41
48
  end
42
49
 
43
50
  context 'when the file is correct' do
@@ -47,7 +47,7 @@ describe ChefSpec::SoloRunner do
47
47
  it 'defaults the cookbook_path to the calling spec when using windows paths' do
48
48
  runner = described_class.new
49
49
  windows_path = runner.instance_exec(windows_caller_stack) { |callstack|
50
- calling_cookbook_path(callstack)
50
+ calling_cookbook_path({}, callstack)
51
51
  }
52
52
  # There's got to be a better way to do this the File.expand_path returns
53
53
  # something like /home/user/repos/chefspec/C:/cookbooks" which is less
@@ -93,12 +93,12 @@ describe ChefSpec::SoloRunner do
93
93
  end
94
94
 
95
95
  context 'fauxhai attributes' do
96
- let(:hash) { described_class.new(platform: 'ubuntu', version: '16.04').node.to_hash }
96
+ let(:hash) { described_class.new(platform: 'ubuntu', version: '18.04').node.to_hash }
97
97
 
98
98
  it 'sets the attributes from fauxhai' do
99
99
  expect(hash['os']).to eq('linux')
100
100
  expect(hash['languages']['ruby']['ruby_bin']).to eq('/usr/local/bin/ruby')
101
- expect(hash['os_version']).to match(/4.4.0-.*-.*/) # avoid failing when fauxhai data changes
101
+ expect(hash['os_version']).to match(/4.15.0-.*-.*/) # avoid failing when fauxhai data changes
102
102
  expect(hash['fqdn']).to eq('fauxhai.local')
103
103
  expect(hash['domain']).to eq('local')
104
104
  expect(hash['ipaddress']).to eq('10.0.0.2')
@@ -13,7 +13,7 @@ options.
13
13
  You can specify the platform and version you would like ChefSpec to act like
14
14
  by specifying the platform and version like so:
15
15
 
16
- ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '16.04')
16
+ ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '18.04')
17
17
 
18
18
  You can read more information in ChefSpec's README or the Fauxhai project:
19
19
 
@@ -0,0 +1,10 @@
1
+ Executing a real shell_out in <%= @resource %> is not allowed:
2
+
3
+ shell_out(<%= @args.inspect[1..-2] %>)
4
+
5
+ You can stub this with:
6
+
7
+ stubs_for_<%= @type %>(<%= @resource.to_s.inspect %>) do |<%= @type %>|
8
+ allow(<%= @type %>).to receive_shell_out(<%= @args.inspect[1..-2] %>)
9
+ end
10
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chefspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.1
4
+ version: 7.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Crump
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-05-08 00:00:00.000000000 Z
12
+ date: 2018-08-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -71,6 +71,7 @@ files:
71
71
  - ISSUES.md
72
72
  - LICENSE
73
73
  - README.md
74
+ - README_old.md
74
75
  - Rakefile
75
76
  - chefspec.gemspec
76
77
  - examples/apt_package/recipes/install.rb
@@ -140,6 +141,9 @@ files:
140
141
  - examples/cookbook_file/spec/create_spec.rb
141
142
  - examples/cookbook_file/spec/delete_spec.rb
142
143
  - examples/cookbook_file/spec/touch_spec.rb
144
+ - examples/core/recipes/default.rb
145
+ - examples/core/spec/default_spec.rb
146
+ - examples/core/spec/non_recipe_spec.rb
143
147
  - examples/cron/recipes/create.rb
144
148
  - examples/cron/recipes/delete.rb
145
149
  - examples/cron/spec/create_spec.rb
@@ -154,6 +158,8 @@ files:
154
158
  - examples/custom_resource/recipes/default.rb
155
159
  - examples/custom_resource/resources/custom_resource.rb
156
160
  - examples/custom_resource/spec/default_spec.rb
161
+ - examples/custom_resource_block/resources/default.rb
162
+ - examples/custom_resource_block/spec/default_spec.rb
157
163
  - examples/directory/recipes/create.rb
158
164
  - examples/directory/recipes/delete.rb
159
165
  - examples/directory/spec/create_spec.rb
@@ -282,6 +288,9 @@ files:
282
288
  - examples/launchd/spec/delete_spec.rb
283
289
  - examples/launchd/spec/disable_spec.rb
284
290
  - examples/launchd/spec/enable_spec.rb
291
+ - examples/library_patch/libraries/default.rb
292
+ - examples/library_patch/recipes/default.rb
293
+ - examples/library_patch/spec/default_spec.rb
285
294
  - examples/link/recipes/create.rb
286
295
  - examples/link/recipes/delete.rb
287
296
  - examples/link/recipes/link_to.rb
@@ -398,6 +407,9 @@ files:
398
407
  - examples/reboot/spec/cancel_spec.rb
399
408
  - examples/reboot/spec/now_spec.rb
400
409
  - examples/reboot/spec/request_spec.rb
410
+ - examples/recipe_block/metadata.rb
411
+ - examples/recipe_block/spec/recipe_block_spec.rb
412
+ - examples/recipe_block/templates/apache2.conf.erb
401
413
  - examples/registry_key/recipes/create.rb
402
414
  - examples/registry_key/recipes/create_if_missing.rb
403
415
  - examples/registry_key/recipes/delete.rb
@@ -447,6 +459,8 @@ files:
447
459
  - examples/ruby_block/recipes/run.rb
448
460
  - examples/ruby_block/spec/create_spec.rb
449
461
  - examples/ruby_block/spec/run_spec.rb
462
+ - examples/runner/recipes/default.rb
463
+ - examples/runner/spec/default_spec.rb
450
464
  - examples/script/recipes/run_bash.rb
451
465
  - examples/script/recipes/run_csh.rb
452
466
  - examples/script/recipes/run_ksh.rb
@@ -500,6 +514,15 @@ files:
500
514
  - examples/solaris_package/spec/install_spec.rb
501
515
  - examples/solaris_package/spec/remove_spec.rb
502
516
  - examples/solaris_package/spec/upgrade_spec.rb
517
+ - examples/spec_attributes/attributes/default.rb
518
+ - examples/spec_attributes/recipes/default.rb
519
+ - examples/spec_attributes/spec/default_spec.rb
520
+ - examples/spec_platform/recipes/default.rb
521
+ - examples/spec_platform/spec/default_spec.rb
522
+ - examples/spec_step_into/recipes/default.rb
523
+ - examples/spec_step_into/resources/one.rb
524
+ - examples/spec_step_into/resources/two.rb
525
+ - examples/spec_step_into/spec/default_spec.rb
503
526
  - examples/state_attrs/providers/lwrp.rb
504
527
  - examples/state_attrs/recipes/default.rb
505
528
  - examples/state_attrs/resources/lwrp.rb
@@ -523,6 +546,9 @@ files:
523
546
  - examples/stub_search/recipes/default.rb
524
547
  - examples/stub_search/spec/block_spec.rb
525
548
  - examples/stub_search/spec/default_spec.rb
549
+ - examples/stubs_for/resources/default.rb
550
+ - examples/stubs_for/resources/old.rb
551
+ - examples/stubs_for/spec/default_spec.rb
526
552
  - examples/subscribes/recipes/before.rb
527
553
  - examples/subscribes/recipes/chained.rb
528
554
  - examples/subscribes/recipes/default.rb
@@ -643,6 +669,8 @@ files:
643
669
  - examples/zypper_package/spec/upgrade_spec.rb
644
670
  - lib/chefspec.rb
645
671
  - lib/chefspec/api.rb
672
+ - lib/chefspec/api/core.rb
673
+ - lib/chefspec/api/described.rb
646
674
  - lib/chefspec/api/do_nothing.rb
647
675
  - lib/chefspec/api/include_recipe.rb
648
676
  - lib/chefspec/api/link.rb
@@ -650,6 +678,8 @@ files:
650
678
  - lib/chefspec/api/reboot.rb
651
679
  - lib/chefspec/api/render_file.rb
652
680
  - lib/chefspec/api/state_attrs.rb
681
+ - lib/chefspec/api/stubs.rb
682
+ - lib/chefspec/api/stubs_for.rb
653
683
  - lib/chefspec/api/subscriptions.rb
654
684
  - lib/chefspec/api/user.rb
655
685
  - lib/chefspec/berkshelf.rb
@@ -663,16 +693,18 @@ files:
663
693
  - lib/chefspec/extensions/chef/client.rb
664
694
  - lib/chefspec/extensions/chef/conditional.rb
665
695
  - lib/chefspec/extensions/chef/cookbook/gem_installer.rb
696
+ - lib/chefspec/extensions/chef/cookbook_loader.rb
666
697
  - lib/chefspec/extensions/chef/cookbook_uploader.rb
667
698
  - lib/chefspec/extensions/chef/data_query.rb
668
699
  - lib/chefspec/extensions/chef/lwrp_base.rb
700
+ - lib/chefspec/extensions/chef/provider.rb
669
701
  - lib/chefspec/extensions/chef/resource.rb
670
702
  - lib/chefspec/extensions/chef/resource/freebsd_package.rb
703
+ - lib/chefspec/extensions/chef/run_context/cookbook_compiler.rb
671
704
  - lib/chefspec/extensions/chef/securable.rb
672
705
  - lib/chefspec/file_cache_path_proxy.rb
673
706
  - lib/chefspec/formatter.rb
674
707
  - lib/chefspec/librarian.rb
675
- - lib/chefspec/macros.rb
676
708
  - lib/chefspec/matchers.rb
677
709
  - lib/chefspec/matchers/do_nothing_matcher.rb
678
710
  - lib/chefspec/matchers/include_recipe_matcher.rb
@@ -686,6 +718,7 @@ files:
686
718
  - lib/chefspec/policyfile.rb
687
719
  - lib/chefspec/renderer.rb
688
720
  - lib/chefspec/rspec.rb
721
+ - lib/chefspec/runner.rb
689
722
  - lib/chefspec/server.rb
690
723
  - lib/chefspec/server_methods.rb
691
724
  - lib/chefspec/server_runner.rb
@@ -742,6 +775,7 @@ files:
742
775
  - templates/errors/may_need_to_specify_platform.erb
743
776
  - templates/errors/no_conversion_error.erb
744
777
  - templates/errors/not_stubbed.erb
778
+ - templates/errors/shell_out_not_stubbed.erb
745
779
  - templates/errors/template_not_found.erb
746
780
  homepage: https://sethvargo.github.io/chefspec/
747
781
  licenses:
@@ -763,7 +797,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
763
797
  version: '0'
764
798
  requirements: []
765
799
  rubyforge_project:
766
- rubygems_version: 2.7.5
800
+ rubygems_version: 2.7.7
767
801
  signing_key:
768
802
  specification_version: 4
769
803
  summary: Write RSpec examples and generate coverage reports for Chef recipes!
@@ -1,222 +0,0 @@
1
- module ChefSpec
2
- module Macros
3
- extend self
4
-
5
- #
6
- # The name of the currently running cookbook spec. Given the top-level
7
- # +describe+ block is of the format:
8
- #
9
- # describe 'my_cookbook::my_recipe' do
10
- # # ...
11
- # end
12
- #
13
- # The value of +described_cookbook+ is "my_cookbook".
14
- #
15
- # @example Using +described_cookbook+ in a context block
16
- # context "#{described_recipe} installs foo" do
17
- # # ...
18
- # end
19
- #
20
- #
21
- # @return [String]
22
- #
23
- def described_cookbook
24
- described_recipe.split('::').first
25
- end
26
-
27
- #
28
- # The name of the currently running recipe spec. Given the top-level
29
- # +describe+ block is of the format:
30
- #
31
- # describe 'my_cookbook::my_recipe' do
32
- # # ...
33
- # end
34
- #
35
- # The value of +described_recipe+ is "my_cookbook::my_recipe".
36
- #
37
- # @example Using +described_recipe+ in the +ChefSpec::SoloRunner+
38
- # let(:chef_run) { ChefSpec::SoloRunner.new.converge(described_recipe) }
39
- #
40
- #
41
- # @return [String]
42
- #
43
- def described_recipe
44
- scope = self.is_a?(Class) ? self : self.class
45
-
46
- metahash = scope.metadata
47
- while metahash.has_key?(:parent_example_group)
48
- metahash = metahash[:parent_example_group]
49
- end
50
-
51
- metahash[:description].to_s
52
- end
53
-
54
- #
55
- # Stub a shell command to return a particular value without
56
- # shelling out to the system.
57
- #
58
- # @example stubbing a command to return true
59
- # stub_command('test -f /tmp/bacon').and_return(true)
60
- #
61
- # @example stubbing a block that is evaluated at runtime
62
- # stub_command('test -f /tmp/bacon') { MyClass.check? }
63
- #
64
- # @example stubbing a command that matches a pattern
65
- # stub_command(/test \-f/).and_return(true)
66
- #
67
- # @example stubbing a command that raises an exception
68
- # stub_command('test -f /tmp/bacon').and_raise(SomeException)
69
- #
70
- #
71
- # @param [String, Regexp] command
72
- # the command to stub
73
- #
74
- # @return [ChefSpec::CommandStub]
75
- #
76
- def stub_command(command, &block)
77
- Stubs::CommandRegistry.register(Stubs::CommandStub.new(command, &block))
78
- end
79
-
80
- #
81
- # Stub a Chef call to load a data_bag.
82
- #
83
- # @example stubbing a data_bag to return an empty Array
84
- # stub_data_bag('users').and_return([])
85
- #
86
- # @example stubbing a data_bag with a block that is evaluated at runtime
87
- # stub_data_bag('users') { JSON.parse(File.read('fixtures/data_bag.json')) }
88
- #
89
- # @example stubbing a data_bag to return an Array of Hashes
90
- # stub_data_bag('users').and_return([
91
- # { id: 'bacon', comment: 'delicious' },
92
- # { id: 'ham', comment: 'also good' }
93
- # ])
94
- #
95
- # @example stubbing a data_bag to raise an exception
96
- # stub_data_bag('users').and_raise(Chef::Exceptions::PrivateKeyMissing)
97
- #
98
- #
99
- # @param [String, Symbol] bag
100
- # the name of the data bag to stub
101
- #
102
- # @return [ChefSpec::DataBagStub]
103
- #
104
- def stub_data_bag(bag, &block)
105
- Stubs::DataBagRegistry.register(Stubs::DataBagStub.new(bag, &block))
106
- end
107
-
108
- #
109
- # Stub a Chef data_bag call.
110
- #
111
- # @example stubbing a data_bag_item to return a Hash of data
112
- # stub_data_bag_item('users', 'svargo').and_return({
113
- # id: 'svargo',
114
- # name: 'Seth Vargo'
115
- # })
116
- #
117
- # @example stubbing a data_bag_item with a block that is evaluated at runtime
118
- # stub_data_bag_item('users', 'svargo') { JSON.parse(File.read('fixtures/data_bag_item.json')) }
119
- #
120
- # @example stubbing a data_bag_item to raise an exception
121
- # stub_data_bag('users', 'svargo').and_raise(Chef::Exceptions::PrivateKeyMissing)
122
- #
123
- #
124
- # @param [String, Symbol] bag
125
- # the name of the data bag to find the item in
126
- # @param [String] id
127
- # the id of the data bag item to stub
128
- #
129
- # @return [ChefSpec::DataBagItemStub]
130
- #
131
- def stub_data_bag_item(bag, id, &block)
132
- Stubs::DataBagItemRegistry.register(Stubs::DataBagItemStub.new(bag, id, &block))
133
- end
134
-
135
- #
136
- # Creates a fake Chef::Node for use in testing.
137
- #
138
- # @example mocking a simple node
139
- # stub_node('mynode.example')
140
- #
141
- # @example mocking a specific platform and version
142
- # stub_node('mynode.example', platform: 'ubuntu', version: '16.04')
143
- #
144
- # @example overriding a specific ohai attribute
145
- # stub_node('mynode.example', ohai: { ipaddress: '1.2.3.4' })
146
- #
147
- # @example stubbing a node based on a JSON fixture
148
- # stub_node('mynode.example', path: File.join('fixtures', 'nodes', 'default.json'))
149
- #
150
- # @example setting specific attributes
151
- # stub_node('mynode.example') do |node|
152
- # node.default['attribute']['thing'] = 'value'
153
- # end
154
- #
155
- #
156
- # @param [String] name
157
- # the name of the node
158
- # @param [Hash] options
159
- # the list of options for the node
160
- #
161
- # @option options [Symbol] :platform
162
- # the platform to mock
163
- # @option options [Symbol] :version
164
- # the version of the platform to mock
165
- # @option options [Symbol] :path
166
- # filepath to a JSON file to pull a node from
167
- # @option options [Hash] :ohai
168
- # a Hash of Ohai attributes to mock on the node
169
- #
170
- # @return [Chef::Node]
171
- #
172
- def stub_node(*args, &block)
173
- options = args.last.is_a?(Hash) ? args.pop : {}
174
- name = args.first || 'node.example'
175
-
176
- fauxhai = Fauxhai.mock(options).data
177
- fauxhai = fauxhai.merge(options[:ohai] || {})
178
- fauxhai = Mash.new(fauxhai)
179
-
180
- node = Chef::Node.new
181
- node.name(name)
182
- node.automatic_attrs = fauxhai
183
- node.instance_eval(&block) if block_given?
184
- node
185
- end
186
-
187
- #
188
- # Stub a Chef search to return pre-defined data. When providing a value,
189
- # the value is automatically mashified (to the best of ChefSpec's abilities)
190
- # to ease in use.
191
- #
192
- # @example stubbing a search to return nothing
193
- # stub_search(:node)
194
- #
195
- # @example stubbing a search with a query
196
- # stub_search(:node, 'name:*')
197
- #
198
- # @example stubbing a search with a query as a regex
199
- # stub_search(:node, /name:(.+)/)
200
- #
201
- # @example stubbing a search with a block that is evaluated at runtime
202
- # stub_search(:node) { JSON.parse(File.read('fixtures/nodes.json')) }
203
- #
204
- # @example stubbing a search to return a fixed value
205
- # stub_search(:node).and_return([ { a: 'b' } ])
206
- #
207
- # @example stubbing a search to raise an exception
208
- # stub_search(:node).and_raise(Chef::Exceptions::PrivateKeyMissing)
209
- #
210
- #
211
- # @param [String, Symbol] type
212
- # the type to search to stub
213
- # @param [String, Symbol, nil] query
214
- # the query to stub
215
- #
216
- # @return [ChefSpec::SearchStub]
217
- #
218
- def stub_search(type, query = '*:*', &block)
219
- Stubs::SearchRegistry.register(Stubs::SearchStub.new(type, query, &block))
220
- end
221
- end
222
- end