chefspec 3.4.0 → 4.0.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -19
  3. data/CHANGELOG.md +32 -1
  4. data/CONTRIBUTING.md +1 -1
  5. data/README.md +37 -9
  6. data/chefspec.gemspec +2 -3
  7. data/examples/render_file/spec/default_spec.rb +32 -17
  8. data/examples/server/recipes/render_with_cached.rb +3 -0
  9. data/examples/server/spec/client_spec.rb +1 -1
  10. data/examples/server/spec/data_bag_spec.rb +1 -1
  11. data/examples/server/spec/environment_spec.rb +1 -1
  12. data/examples/server/spec/node_spec.rb +1 -1
  13. data/examples/server/spec/render_with_cached_spec.rb +16 -0
  14. data/examples/server/spec/role_spec.rb +1 -1
  15. data/features/server.feature +10 -12
  16. data/features/support/executor.rb +2 -0
  17. data/gemfiles/{chef-11.0.0.gemfile → chef-11.12.0.gemfile} +1 -1
  18. data/gemfiles/chef-master.gemfile +1 -1
  19. data/lib/chefspec.rb +1 -0
  20. data/lib/chefspec/api/erl_call.rb +5 -5
  21. data/lib/chefspec/api/execute.rb +5 -5
  22. data/lib/chefspec/api/powershell_script.rb +5 -5
  23. data/lib/chefspec/api/ruby_block.rb +2 -2
  24. data/lib/chefspec/api/script.rb +13 -2
  25. data/lib/chefspec/cacher.rb +2 -1
  26. data/lib/chefspec/coverage.rb +10 -2
  27. data/lib/chefspec/expect_exception.rb +0 -2
  28. data/lib/chefspec/extensions/chef/lwrp_base.rb +5 -1
  29. data/lib/chefspec/extensions/chef/resource/freebsd_package.rb +19 -0
  30. data/lib/chefspec/librarian.rb +5 -2
  31. data/lib/chefspec/macros.rb +3 -3
  32. data/lib/chefspec/matchers/do_nothing_matcher.rb +4 -2
  33. data/lib/chefspec/matchers/include_recipe_matcher.rb +2 -2
  34. data/lib/chefspec/matchers/link_to_matcher.rb +11 -5
  35. data/lib/chefspec/matchers/notifications_matcher.rb +2 -2
  36. data/lib/chefspec/matchers/render_file_matcher.rb +9 -3
  37. data/lib/chefspec/matchers/resource_matcher.rb +2 -2
  38. data/lib/chefspec/matchers/state_attrs_matcher.rb +2 -2
  39. data/lib/chefspec/matchers/subscribes_matcher.rb +4 -4
  40. data/lib/chefspec/renderer.rb +1 -1
  41. data/lib/chefspec/rspec.rb +1 -0
  42. data/lib/chefspec/runner.rb +2 -1
  43. data/lib/chefspec/server.rb +90 -19
  44. data/lib/chefspec/version.rb +1 -1
  45. data/spec/unit/cacher_spec.rb +1 -1
  46. data/spec/unit/expect_exception_spec.rb +6 -6
  47. data/spec/unit/extensions/lwrp_base_spec.rb +9 -1
  48. data/spec/unit/macros_spec.rb +6 -6
  49. data/spec/unit/matchers/include_recipe_matcher_spec.rb +6 -6
  50. data/spec/unit/matchers/link_to_matcher_spec.rb +31 -15
  51. data/spec/unit/matchers/notifications_matcher_spec.rb +4 -4
  52. data/spec/unit/matchers/render_file_matcher_spec.rb +19 -10
  53. data/spec/unit/matchers/state_attrs_matcher_spec.rb +28 -24
  54. data/spec/unit/matchers/subscribes_matcher_spec.rb +7 -7
  55. data/spec/unit/renderer_spec.rb +7 -7
  56. data/spec/unit/runner_spec.rb +39 -9
  57. metadata +10 -25
  58. data/gemfiles/chef-11.2.0.gemfile +0 -5
  59. data/gemfiles/chef-11.4.4.gemfile +0 -5
  60. data/gemfiles/chef-11.6.0.gemfile +0 -5
  61. data/gemfiles/chef-11.8.0.gemfile +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db7a5ff46f8abc2437123170af409eee038f23bb
4
- data.tar.gz: 37af4d6d9df0ec11b63c73c2ee4d5bb7735c0406
3
+ metadata.gz: fd833d7dcb6a3d973ccd35a43a0f606142244b8f
4
+ data.tar.gz: c2c2d2832263d9868c542d7cc005b4f626bfe863
5
5
  SHA512:
6
- metadata.gz: 9e9f02d613fe796154fcec30b55d6f716ccb9851aca20a6dc9c632247280658fa88ad9adc13ce56417be0f7c67dd833fb3292260244b664c0156ce7ab36d7f2a
7
- data.tar.gz: 785722986b2db643a6b4023b8c5d77562d1e91ca1d54df5e453f83bcb1dbc93d6776d4d5b7149652cc00fe10ac12ae7b7a4f55498caeb16ab922dc013041a401
6
+ metadata.gz: 02158758eeff60f14350d2084279b07046c1534e04f20f7392700471b79bd44316ddd57af76a21420e613ca7c115c33870fbcec3de4ea027e20a8575bef1e529
7
+ data.tar.gz: 62660485d2405c57a6e17a1b566f7a344ef86fad27fba8520a5aea451a304bd5429d5a72aab869c37c4c7cebd869b8e8f16a6311cdce9466826ee7b04ff03691
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  rvm:
2
2
  - 1.9.3
3
3
  - 2.0.0
4
- - 2.1.0
4
+ - 2.1
5
5
 
6
6
  branches:
7
7
  only:
@@ -19,27 +19,10 @@ notifications:
19
19
  bundler_args: --jobs 7
20
20
 
21
21
  gemfile:
22
- - gemfiles/chef-11.0.0.gemfile
23
- - gemfiles/chef-11.2.0.gemfile
24
- - gemfiles/chef-11.4.4.gemfile
25
- - gemfiles/chef-11.6.0.gemfile
26
- - gemfiles/chef-11.8.0.gemfile
22
+ - gemfiles/chef-11.12.0.gemfile
27
23
  - gemfiles/chef-master.gemfile
28
24
 
29
25
  matrix:
30
26
  fast_finish: true
31
27
  allow_failures:
32
28
  - gemfile: gemfiles/chef-master.gemfile
33
- exclude:
34
- - rvm: 2.0.0
35
- gemfile: gemfiles/chef-11.0.0.gemfile
36
- - rvm: 2.0.0
37
- gemfile: gemfiles/chef-11.2.0.gemfile
38
- - rvm: 2.0.0
39
- gemfile: gemfiles/chef-11.4.4.gemfile
40
- - rvm: 2.1.0
41
- gemfile: gemfiles/chef-11.0.0.gemfile
42
- - rvm: 2.1.0
43
- gemfile: gemfiles/chef-11.2.0.gemfile
44
- - rvm: 2.1.0
45
- gemfile: gemfiles/chef-11.4.4.gemfile
data/CHANGELOG.md CHANGED
@@ -1,7 +1,38 @@
1
1
  CHANGELOG for ChefSpec
2
2
  ======================
3
3
 
4
- ## 3.3.2 (March 16, 2014)
4
+ ## 4.0.0 (June 2, 2014)
5
+ Breaking Changes:
6
+ - **Upgraded to RSpec 3!** RSpec 3 brings many new API changes and syntaxes
7
+ - **Bump minimum required Chef version to 11.12!** Without this change, Chef Zero will blow up
8
+
9
+ Bugfixes:
10
+ - Gracefully fail if a resource does not report it's source line in the reporter
11
+ - Pull the correct cookbook folder from the stack on Windows (88bfc6)
12
+ - Cover resources in render_file matchers for reporting
13
+ - Cover resources in link_to matchers for reporting
14
+ - Cover resources in do_nothing matchers for reporting
15
+ - Fix memory leak in LWRP Resource classes
16
+ - Restore the original `cookbook_path` when using librarian-chef
17
+ - Documentation fixes
18
+ - Disable lazy loading of cached resources
19
+ - Fix a bug that will happen in later Chef versions because FreeBSD is evil (13ff143)
20
+ - Do not pass local file paths to `preferred_filename_on_disk_location`
21
+
22
+ Features:
23
+ - Add runner methods for all the bash, csh, perl, etc resources
24
+ - Upgraded fauxhai dependency and specs
25
+ - Upgrade Chef Zero for multi-org support
26
+
27
+ Improvements:
28
+ - Improved documentation around the `define_runner_method` method
29
+ - Update badges to be all SVG
30
+ - Test on Ruby 2.1
31
+ - Use a randomly assigned port for Chef Zero
32
+ - Remove references to `.stub` from documentation
33
+
34
+
35
+ ## 3.4.0 (March 16, 2014)
5
36
  Bugfixes:
6
37
  - Restore Berkshelf 2 support (missing edge case)
7
38
  - Add negative failure message for subscribes/notifies matchers
data/CONTRIBUTING.md CHANGED
@@ -19,7 +19,7 @@ Will Not Merge
19
19
  --------------
20
20
  This section details, specifically, Pull Requests or features that will _not_ be merged:
21
21
 
22
- 1. Matchers for non-Chef core resources. ChefSpec 3.0 introduced a way for cookbook maintainers to [package matchers _with_ their cookbooks](https://github.com/sethvargo/chefspec/tree/unify_matchers#packaging-lwrp-matchers) at distribution time.
22
+ 1. Matchers for non-Chef core resources. ChefSpec 3.0 introduced a way for cookbook maintainers to [package matchers _with_ their cookbooks](https://github.com/sethvargo/chefspec#packaging-custom-matchers) at distribution time.
23
23
  2. New features without accompanying unit tests, cucumber tests, and documentation.
24
24
 
25
25
 
data/README.md CHANGED
@@ -1,9 +1,16 @@
1
1
  ChefSpec
2
2
  ========
3
- [![Built on Travis](https://secure.travis-ci.org/sethvargo/chefspec.png?branch=master)](http://travis-ci.org/sethvargo/chefspec)
4
- [![Gem Version](https://badge.fury.io/rb/chefspec.png)](http://badge.fury.io/rb/chefspec)
5
- [![Dependency Status](https://gemnasium.com/sethvargo/chefspec.png)](https://gemnasium.com/sethvargo/chefspec)
6
- [![Code Climate](https://codeclimate.com/github/sethvargo/chefspec.png)](https://codeclimate.com/github/sethvargo/chefspec)
3
+ [![Gem Version](http://img.shields.io/gem/v/chefspec.svg)][gem]
4
+ [![Build Status](http://img.shields.io/travis/sethvargo/chefspec.svg)][travis]
5
+ [![Dependency Status](http://img.shields.io/gemnasium/sethvargo/chefspec.svg)][gemnasium]
6
+ [![Code Climate](http://img.shields.io/codeclimate/github/sethvargo/chefspec.svg)][codeclimate]
7
+ [![Gittip](http://img.shields.io/gittip/sethvargo.svg)][gittip]
8
+
9
+ [gem]: https://rubygems.org/gems/chefspec
10
+ [travis]: http://travis-ci.org/sethvargo/chefspec
11
+ [gemnasium]: https://gemnasium.com/sethvargo/chefspec
12
+ [codeclimate]: https://codeclimate.com/github/sethvargo/chefspec
13
+ [gittip]: https://www.gittip.com/sethvargo
7
14
 
8
15
  ChefSpec is a unit testing framework for testing Chef cookbooks. ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.
9
16
 
@@ -83,6 +90,9 @@ RSpec.configure do |config|
83
90
  # the location of the calling spec file])
84
91
  config.cookbook_path = '/var/cookbooks'
85
92
 
93
+ # Set the organization for Chef Zero (default: 'chefspec')
94
+ config.organization = 'sweetsauce'
95
+
86
96
  # Specify the path for Chef Solo to find roles (default: [ascending search])
87
97
  config.role_path = '/var/roles'
88
98
 
@@ -520,7 +530,7 @@ If you are using **Encrypted Data Bag Items**, you'll need to dive into the RSpe
520
530
  ```ruby
521
531
  describe 'example::default' do
522
532
  before do
523
- Chef::EncryptedDataBagItem.stub(:load).with('users', 'svargo').and_return(...)
533
+ allow(Chef::EncryptedDataBagItem).to receive(:load).with('users', 'svargo').and_return(...)
524
534
  end
525
535
  end
526
536
  ```
@@ -636,7 +646,7 @@ class CustomFilter < ChefSpec::Coverage::Filter
636
646
  end
637
647
  end
638
648
 
639
- ChefSpec::Converage.start! do
649
+ ChefSpec::Coverage.start! do
640
650
  add_filter CustomFilter.new('foo', :bar)
641
651
  end
642
652
  ```
@@ -664,10 +674,10 @@ let(:chef_run) do
664
674
  env.name 'staging'
665
675
 
666
676
  # Stub the node to return this environment
667
- node.stub(:chef_environment).and_return(env.name)
677
+ allow(node).to receive(:chef_environment).and_return(env.name)
668
678
 
669
679
  # Stub any calls to Environment.load to return this environment
670
- Chef::Environment.stub(:load).and_return(env)
680
+ allow(Chef::Environment).to receive(:load).and_return(env)
671
681
  end.converge('cookbook::recipe')
672
682
  end
673
683
  ```
@@ -788,6 +798,24 @@ require_relative 'support/matchers'
788
798
 
789
799
  Please use this as a _temporary_ solution. Consider sending a Pull Request to the LWRP author(s) packaging the custom resource matchers (see previous section).
790
800
 
801
+ ChefSpec also provides a helper method to define a method on the Chef runner for locating a resource in the collection. This is helpful while asserting against custom resource notifications.
802
+
803
+ ```ruby
804
+ # matchers.rb
805
+ ChefSpec::Runner.define_runner_method :my_custom_resource
806
+ ```
807
+
808
+ And then in your spec suite, you can obtain the custom resource for assertions:
809
+
810
+ ```ruby
811
+ let(:chef_run) { ChefSpec::Runner.new('...') }
812
+
813
+ it 'notifies the thing' do
814
+ custom = chef_run.my_custom_resource('name')
815
+ expect(custom).to notify('service[apache2]').to(:restart).immediately
816
+ end
817
+ ```
818
+
791
819
 
792
820
  Expecting Exceptions
793
821
  --------------------
@@ -917,7 +945,7 @@ Next, convert all your `let` blocks to `cached`:
917
945
 
918
946
  ```ruby
919
947
  # before
920
- let(:chef_run) { ChefSpec::Runer.new }
948
+ let(:chef_run) { ChefSpec::Runner.new }
921
949
 
922
950
  # after
923
951
  cached(:chef_run) { ChefSpec::Runner.new }
data/chefspec.gemspec CHANGED
@@ -26,12 +26,11 @@ Gem::Specification.new do |s|
26
26
  # ChefSpec requires Ruby 1.9+
27
27
  s.required_ruby_version = '>= 1.9'
28
28
 
29
- s.add_dependency 'chef', '~> 11.0'
29
+ s.add_dependency 'chef', '~> 11.12'
30
30
  s.add_dependency 'fauxhai', '~> 2.0'
31
- s.add_dependency 'rspec', '~> 2.14'
31
+ s.add_dependency 'rspec', '~> 3.0'
32
32
 
33
33
  # Development Dependencies
34
- s.add_development_dependency 'chef-zero', '~> 1.7'
35
34
  s.add_development_dependency 'rake'
36
35
  s.add_development_dependency 'redcarpet', '~> 3.0'
37
36
  s.add_development_dependency 'yard', '~> 0.8'
@@ -30,28 +30,43 @@ describe 'render_file::default' do
30
30
  end
31
31
 
32
32
  context 'cookbook_file' do
33
- it 'renders the file' do
34
- expect(chef_run).to render_file('/tmp/cookbook_file')
35
- expect(chef_run).to_not render_file('/tmp/not_cookbook_file')
33
+ shared_examples 'renders file' do
34
+ it 'renders the file' do
35
+ expect(chef_run).to render_file('/tmp/cookbook_file')
36
+ expect(chef_run).to_not render_file('/tmp/not_cookbook_file')
37
+ end
38
+
39
+ it 'renders the file with content' do
40
+ expect(chef_run).to render_file('/tmp/cookbook_file').with_content('This is content!')
41
+ expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content('This is not content!')
42
+ end
43
+
44
+ it 'renders the file with matching content' do
45
+ expect(chef_run).to render_file('/tmp/cookbook_file').with_content(/^This(.+)$/)
46
+ expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content(/^Not(.+)$/)
47
+ end
48
+
49
+ it 'renders the file with content matching arbitrary matcher' do
50
+ expect(chef_run).to render_file('/tmp/cookbook_file').with_content(
51
+ start_with('This')
52
+ )
53
+ expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content(
54
+ end_with('not')
55
+ )
56
+ end
36
57
  end
37
58
 
38
- it 'renders the file with content' do
39
- expect(chef_run).to render_file('/tmp/cookbook_file').with_content('This is content!')
40
- expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content('This is not content!')
59
+ context 'with a pristine filesystem' do
60
+ it_behaves_like 'renders file'
41
61
  end
42
62
 
43
- it 'renders the file with matching content' do
44
- expect(chef_run).to render_file('/tmp/cookbook_file').with_content(/^This(.+)$/)
45
- expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content(/^Not(.+)$/)
46
- end
63
+ context 'with a same rendered file on filesystem' do
64
+ before do
65
+ allow(File).to receive(:read).and_call_original
66
+ allow(File).to receive(:read).with('/tmp/cookbook_file', 'rb').and_yield('This is content!')
67
+ end
47
68
 
48
- it 'renders the file with content matching arbitrary matcher' do
49
- expect(chef_run).to render_file('/tmp/cookbook_file').with_content(
50
- start_with('This')
51
- )
52
- expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content(
53
- end_with('not')
54
- )
69
+ it_behaves_like 'renders file'
55
70
  end
56
71
  end
57
72
 
@@ -0,0 +1,3 @@
1
+ file '/tmp/file' do
2
+ content 'This is content!'
3
+ end
@@ -1,5 +1,5 @@
1
1
  require 'chefspec'
2
- load 'chefspec/server.rb'
2
+ require 'chefspec/server'
3
3
 
4
4
  describe 'server::client' do
5
5
  let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
@@ -1,5 +1,5 @@
1
1
  require 'chefspec'
2
- load 'chefspec/server.rb'
2
+ require 'chefspec/server'
3
3
 
4
4
  describe 'server::data_bag' do
5
5
  let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
@@ -1,5 +1,5 @@
1
1
  require 'chefspec'
2
- load 'chefspec/server.rb'
2
+ require 'chefspec/server'
3
3
 
4
4
  describe 'server::environment' do
5
5
  let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
@@ -35,6 +35,6 @@ describe 'server::node' do
35
35
  expect(ChefSpec::Server).to have_node('chefspec')
36
36
 
37
37
  node = ChefSpec::Server.node('chefspec')
38
- expect(node['breakfast']['bacon']).to be_true
38
+ expect(node['breakfast']['bacon']).to be_truthy
39
39
  end
40
40
  end
@@ -0,0 +1,16 @@
1
+ require 'chefspec'
2
+ require 'chefspec/cacher'
3
+ require 'chefspec/server'
4
+
5
+ RSpec.configure do |config|
6
+ config.extend(ChefSpec::Cacher)
7
+ end
8
+
9
+ describe 'server::render_with_cached' do
10
+ cached(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
11
+
12
+ it 'does not cache file requests' do
13
+ expect(chef_run).to render_file('/tmp/file')
14
+ expect(chef_run).to render_file('/tmp/file').with_content('This is content!')
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  require 'chefspec'
2
- load 'chefspec/server.rb'
2
+ require 'chefspec/server'
3
3
 
4
4
  describe 'server::role' do
5
5
  let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
@@ -1,9 +1,6 @@
1
- # We need to spawn a new process because requiring the server module changes
2
- # the default behavior of ChefSpec. Additionally, there's a bug in ChefZero
3
- # that doesn't work with Chef Chef 11.0.0 and 11.2.0.
1
+ # Need to spawn a sub-process; otherwise future tests will fail because the
2
+ # server is running
4
3
  @spawn
5
- @not_chef_11_0_0
6
- @not_chef_11_2_0
7
4
  Feature: The ChefSpec server
8
5
  Background:
9
6
  * I am using the "server" cookbook
@@ -12,10 +9,11 @@ Feature: The ChefSpec server
12
9
  * I successfully run `rspec spec/<Compontent>_spec.rb`
13
10
  * the output should contain "0 failures"
14
11
  Examples:
15
- | Compontent |
16
- | client |
17
- | data_bag |
18
- | environment |
19
- | node |
20
- | role |
21
- | search |
12
+ | Compontent |
13
+ | client |
14
+ | data_bag |
15
+ | environment |
16
+ | node |
17
+ | render_with_cached |
18
+ | role |
19
+ | search |
@@ -13,6 +13,8 @@ module ChefSpec
13
13
  def execute!
14
14
  exitstatus = RSpec::Core::Runner.run(@argv, @stderr, @stdout)
15
15
  @kernel.exit(exitstatus)
16
+ ensure
17
+ RSpec.reset
16
18
  end
17
19
  end
18
20
  end
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'chef', '11.0.0'
3
+ gem 'chef', '~> 11.12.0'
4
4
 
5
5
  gemspec :path => '..'
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'chef', :github => 'opscode/chef'
3
+ gem 'chef', github: 'opscode/chef'
4
4
 
5
5
  gemspec :path => '..'
data/lib/chefspec.rb CHANGED
@@ -6,6 +6,7 @@ require_relative 'chefspec/extensions/chef/data_query'
6
6
  require_relative 'chefspec/extensions/chef/lwrp_base'
7
7
  require_relative 'chefspec/extensions/chef/resource'
8
8
  require_relative 'chefspec/extensions/chef/securable'
9
+ require_relative 'chefspec/extensions/chef/resource/freebsd_package'
9
10
 
10
11
  require_relative 'chefspec/mixins/normalize'
11
12
 
@@ -15,19 +15,19 @@ module ChefSpec::API
15
15
  # The Examples section demonstrates the different ways to test an
16
16
  # +erl_call+ resource with ChefSpec.
17
17
  #
18
- # @example Assert that an +erl_call+ was runed
18
+ # @example Assert that an +erl_call+ was run
19
19
  # expect(chef_run).to run_erl_call('net_adm:names()')
20
20
  #
21
- # @example Assert that an +erl_call+ was runed with predicate matchers
21
+ # @example Assert that an +erl_call+ was run with predicate matchers
22
22
  # expect(chef_run).to run_erl_call('net_adm:names()').with_node_name('example')
23
23
  #
24
- # @example Assert that an +erl_call+ was runed with attributes
24
+ # @example Assert that an +erl_call+ was run with attributes
25
25
  # expect(chef_run).to run_erl_call('net_adm:names()').with(node_name: 'example')
26
26
  #
27
- # @example Assert that an +erl_call+ was runed using a regex
27
+ # @example Assert that an +erl_call+ was run using a regex
28
28
  # expect(chef_run).to run_erl_call('net_adm:names()').with(node_name: /[a-z]+/)
29
29
  #
30
- # @example Assert that an +erl_call+ was _not_ runed
30
+ # @example Assert that an +erl_call+ was _not_ run
31
31
  # expect(chef_run).to_not run_erl_call('net_adm:names()')
32
32
  #
33
33
  #
@@ -15,19 +15,19 @@ module ChefSpec::API
15
15
  # The Examples section demonstrates the different ways to test an
16
16
  # +execute+ resource with ChefSpec.
17
17
  #
18
- # @example Assert that an +execute+ was runed
18
+ # @example Assert that an +execute+ was run
19
19
  # expect(chef_run).to run_execute('echo "hello"')
20
20
  #
21
- # @example Assert that an +execute+ was runed with predicate matchers
21
+ # @example Assert that an +execute+ was run with predicate matchers
22
22
  # expect(chef_run).to run_execute('echo "hello"').with_user('svargo')
23
23
  #
24
- # @example Assert that an +execute+ was runed with attributes
24
+ # @example Assert that an +execute+ was run with attributes
25
25
  # expect(chef_run).to run_execute('echo "hello"').with(user: 'svargo')
26
26
  #
27
- # @example Assert that an +execute+ was runed using a regex
27
+ # @example Assert that an +execute+ was run using a regex
28
28
  # expect(chef_run).to run_execute('echo "hello"').with(user: /sva(.+)/)
29
29
  #
30
- # @example Assert that an +execute+ was _not_ runed
30
+ # @example Assert that an +execute+ was _not_ run
31
31
  # expect(chef_run).to_not run_execute('echo "hello"')
32
32
  #
33
33
  #