chefspec 3.3.1 → 3.4.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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/CHANGELOG.md +12 -0
- data/README.md +15 -1
- data/examples/do_nothing/recipes/default.rb +3 -0
- data/examples/do_nothing/spec/default_spec.rb +15 -0
- data/examples/render_file/spec/default_spec.rb +27 -0
- data/features/do_nothing.feature +10 -0
- data/lib/chefspec/api.rb +1 -0
- data/lib/chefspec/api/do_nothing.rb +24 -0
- data/lib/chefspec/api/render_file.rb +3 -0
- data/lib/chefspec/coverage/filters.rb +8 -4
- data/lib/chefspec/matchers.rb +1 -0
- data/lib/chefspec/matchers/do_nothing_matcher.rb +50 -0
- data/lib/chefspec/matchers/notifications_matcher.rb +9 -1
- data/lib/chefspec/matchers/render_file_matcher.rb +14 -4
- data/lib/chefspec/matchers/subscribes_matcher.rb +4 -0
- data/lib/chefspec/version.rb +1 -1
- data/spec/unit/matchers/do_nothing_matcher.rb +5 -0
- data/spec/unit/matchers/notifications_matcher_spec.rb +35 -1
- data/spec/unit/matchers/subscribes_matcher_spec.rb +60 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db7a5ff46f8abc2437123170af409eee038f23bb
|
4
|
+
data.tar.gz: 37af4d6d9df0ec11b63c73c2ee4d5bb7735c0406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e9f02d613fe796154fcec30b55d6f716ccb9851aca20a6dc9c632247280658fa88ad9adc13ce56417be0f7c67dd833fb3292260244b664c0156ce7ab36d7f2a
|
7
|
+
data.tar.gz: 785722986b2db643a6b4023b8c5d77562d1e91ca1d54df5e453f83bcb1dbc93d6776d4d5b7149652cc00fe10ac12ae7b7a4f55498caeb16ab922dc013041a401
|
data/.travis.yml
CHANGED
@@ -2,9 +2,11 @@ rvm:
|
|
2
2
|
- 1.9.3
|
3
3
|
- 2.0.0
|
4
4
|
- 2.1.0
|
5
|
+
|
5
6
|
branches:
|
6
7
|
only:
|
7
8
|
- master
|
9
|
+
|
8
10
|
notifications:
|
9
11
|
irc:
|
10
12
|
channels:
|
@@ -13,6 +15,9 @@ notifications:
|
|
13
15
|
skip_join: true
|
14
16
|
template:
|
15
17
|
- "%{message} (%{author}): %{build_url}"
|
18
|
+
|
19
|
+
bundler_args: --jobs 7
|
20
|
+
|
16
21
|
gemfile:
|
17
22
|
- gemfiles/chef-11.0.0.gemfile
|
18
23
|
- gemfiles/chef-11.2.0.gemfile
|
@@ -20,6 +25,7 @@ gemfile:
|
|
20
25
|
- gemfiles/chef-11.6.0.gemfile
|
21
26
|
- gemfiles/chef-11.8.0.gemfile
|
22
27
|
- gemfiles/chef-master.gemfile
|
28
|
+
|
23
29
|
matrix:
|
24
30
|
fast_finish: true
|
25
31
|
allow_failures:
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
CHANGELOG for ChefSpec
|
2
2
|
======================
|
3
3
|
|
4
|
+
## 3.3.2 (March 16, 2014)
|
5
|
+
Bugfixes:
|
6
|
+
- Restore Berkshelf 2 support (missing edge case)
|
7
|
+
- Add negative failure message for subscribes/notifies matchers
|
8
|
+
|
9
|
+
Features:
|
10
|
+
- Added `do_nothing` matcher for asserting a resource performed no actions
|
11
|
+
|
12
|
+
Improvements:
|
13
|
+
- Increased spec coverage for matchers
|
14
|
+
- Support RSpec matchers in `with_content`
|
15
|
+
|
4
16
|
## 3.3.1 (March 11, 2014)
|
5
17
|
Bugfixes:
|
6
18
|
- Various typographical fixes in the README
|
data/README.md
CHANGED
@@ -267,7 +267,13 @@ expect(chef_run).to render_file('/etc/foo').with_content('This is content')
|
|
267
267
|
expect(chef_run).to render_file('/etc/foo').with_content(/regex works too.+/)
|
268
268
|
```
|
269
269
|
|
270
|
-
|
270
|
+
You can use any RSpec content matcher inside of the `with_content` predicate:
|
271
|
+
|
272
|
+
```ruby
|
273
|
+
expect(chef_run).to render_file('/etc/foo').with_content(start_with('# First line'))
|
274
|
+
```
|
275
|
+
|
276
|
+
It is possible to assert which [Chef phase of execution](http://docs.opscode.com/essentials_nodes_chef_run.html) a resource is created. Given a resource that is installed at compile time using `run_action`:
|
271
277
|
|
272
278
|
```ruby
|
273
279
|
package('apache2').run_action(:install)
|
@@ -287,6 +293,14 @@ expect(chef_run).to install_package('apache2').at_converge_time
|
|
287
293
|
|
288
294
|
Since "converge time" is the default behavior for all recipes, this test might be redundant and the predicate could be dropped depending on your situation.
|
289
295
|
|
296
|
+
##### do_nothing
|
297
|
+
Assert that a resource performs no action
|
298
|
+
|
299
|
+
```ruby
|
300
|
+
resource = chef_run.execute('install')
|
301
|
+
expect(resource).to do_nothing
|
302
|
+
```
|
303
|
+
|
290
304
|
**For more complex examples, please see the [examples directory](https://github.com/sethvargo/chefspec/tree/master/examples) or the [Yard documentation](http://rubydoc.info/github/sethvargo/chefspec).**
|
291
305
|
|
292
306
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'chefspec'
|
2
|
+
|
3
|
+
describe 'do_nothing::default' do
|
4
|
+
let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) }
|
5
|
+
|
6
|
+
it 'includes the `other` recipe' do
|
7
|
+
execute = chef_run.execute('install')
|
8
|
+
expect(execute).to do_nothing
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'does not include the `not` recipe' do
|
12
|
+
execute = chef_run.execute('not_install')
|
13
|
+
expect(execute).to_not do_nothing
|
14
|
+
end
|
15
|
+
end
|
@@ -18,6 +18,15 @@ describe 'render_file::default' do
|
|
18
18
|
expect(chef_run).to render_file('/tmp/file').with_content(/^This(.+)$/)
|
19
19
|
expect(chef_run).to_not render_file('/tmp/file').with_content(/^Not(.+)$/)
|
20
20
|
end
|
21
|
+
|
22
|
+
it 'renders the file with content matching arbitrary matcher' do
|
23
|
+
expect(chef_run).to render_file('/tmp/file').with_content(
|
24
|
+
start_with('This')
|
25
|
+
)
|
26
|
+
expect(chef_run).to_not render_file('/tmp/file').with_content(
|
27
|
+
end_with('not')
|
28
|
+
)
|
29
|
+
end
|
21
30
|
end
|
22
31
|
|
23
32
|
context 'cookbook_file' do
|
@@ -35,6 +44,15 @@ describe 'render_file::default' do
|
|
35
44
|
expect(chef_run).to render_file('/tmp/cookbook_file').with_content(/^This(.+)$/)
|
36
45
|
expect(chef_run).to_not render_file('/tmp/cookbook_file').with_content(/^Not(.+)$/)
|
37
46
|
end
|
47
|
+
|
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
|
+
)
|
55
|
+
end
|
38
56
|
end
|
39
57
|
|
40
58
|
context 'template' do
|
@@ -52,6 +70,15 @@ describe 'render_file::default' do
|
|
52
70
|
expect(chef_run).to render_file('/tmp/template').with_content(/^This(.+)$/)
|
53
71
|
expect(chef_run).to_not render_file('/tmp/template').with_content(/^Not(.+)$/)
|
54
72
|
end
|
73
|
+
|
74
|
+
it 'renders the file with content matching arbitrary matcher' do
|
75
|
+
expect(chef_run).to render_file('/tmp/template').with_content(
|
76
|
+
start_with('This')
|
77
|
+
)
|
78
|
+
expect(chef_run).to_not render_file('/tmp/template').with_content(
|
79
|
+
end_with('not')
|
80
|
+
)
|
81
|
+
end
|
55
82
|
end
|
56
83
|
|
57
84
|
context 'template with render' do
|
data/lib/chefspec/api.rb
CHANGED
@@ -34,6 +34,7 @@ require_relative 'api/cron'
|
|
34
34
|
require_relative 'api/deploy'
|
35
35
|
require_relative 'api/directory'
|
36
36
|
require_relative 'api/dpkg_package'
|
37
|
+
require_relative 'api/do_nothing'
|
37
38
|
require_relative 'api/easy_install_package'
|
38
39
|
require_relative 'api/env'
|
39
40
|
require_relative 'api/erl_call'
|
@@ -0,0 +1,24 @@
|
|
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
|
23
|
+
end
|
24
|
+
end
|
@@ -16,6 +16,9 @@ module ChefSpec::API
|
|
16
16
|
# @example Assert a template is rendered with matching content
|
17
17
|
# expect(template).to render_file('/etc/foo').with_content(/^This(.+)$/)
|
18
18
|
#
|
19
|
+
# @example Assert a template is rendered with content matching any RSpec matcher
|
20
|
+
# expect(template).to render_file('/etc/foo').with_content(starts_with('This'))
|
21
|
+
#
|
19
22
|
# @example Assert a partial path to a template is rendered with matching content
|
20
23
|
# expect(template).to render_file(/\/etc\/foo-(\d+)$/).with_content(/^This(.+)$/)
|
21
24
|
#
|
@@ -56,10 +56,14 @@ module ChefSpec
|
|
56
56
|
.select(&:metadata?)
|
57
57
|
.map(&:name)
|
58
58
|
else
|
59
|
-
berksfile.sources.
|
60
|
-
.
|
61
|
-
.
|
62
|
-
|
59
|
+
berksfile.sources.collect do |source|
|
60
|
+
location = source.location
|
61
|
+
if location.respond_to?(:metadata?) && location.metadata?
|
62
|
+
source
|
63
|
+
else
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
end.compact.map(&:name)
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
data/lib/chefspec/matchers.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
module ChefSpec::Matchers
|
2
|
+
class DoNothingMatcher
|
3
|
+
def matches?(resource)
|
4
|
+
@resource = resource
|
5
|
+
|
6
|
+
if @resource
|
7
|
+
actions = @resource.performed_actions
|
8
|
+
actions.empty? || actions == [:nothing]
|
9
|
+
else
|
10
|
+
false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def description
|
15
|
+
'do nothing'
|
16
|
+
end
|
17
|
+
|
18
|
+
def failure_message_for_should
|
19
|
+
if @resource
|
20
|
+
message = %|expected #{@resource} to do nothing, but the following |
|
21
|
+
message << %|actions were performed:|
|
22
|
+
message << %|\n\n|
|
23
|
+
@resource.performed_actions.each do |action|
|
24
|
+
message << %| :#{action}|
|
25
|
+
end
|
26
|
+
message
|
27
|
+
else
|
28
|
+
message = %|expected _something_ to do nothing, but the _something_ |
|
29
|
+
message << %|you gave me was nil! If you are running a test like:|
|
30
|
+
message << %|\n\n|
|
31
|
+
message << %| expect(_something_).to do_nothing|
|
32
|
+
message << %|\n\n|
|
33
|
+
message << %|make sure that `_something_` exists, because I got nil!|
|
34
|
+
message
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def failure_message_for_should_not
|
39
|
+
if @resource
|
40
|
+
message = %|expected #{@resource} to do something, but no actions |
|
41
|
+
message << %|were performed.|
|
42
|
+
message
|
43
|
+
else
|
44
|
+
message = %|expected _something_ to do something, but no actions |
|
45
|
+
message << %|were performed.|
|
46
|
+
message
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -53,7 +53,7 @@ module ChefSpec::Matchers
|
|
53
53
|
|
54
54
|
def failure_message_for_should
|
55
55
|
if @resource
|
56
|
-
message = %Q{expected "#{
|
56
|
+
message = %Q{expected "#{@resource}" to notify "#{@expected_resource_type}[#{@expected_resource_name}]"}
|
57
57
|
message << " with action :#{@action}" if @action
|
58
58
|
message << " immediately" if @immediately
|
59
59
|
message << " delayed" if @delayed
|
@@ -77,6 +77,14 @@ module ChefSpec::Matchers
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
+
def failure_message_for_should_not
|
81
|
+
if @resource
|
82
|
+
message = %Q{expected "#{@resource}" to not notify "#{@expected_resource_type}[#{@expected_resource_name}]"}
|
83
|
+
message << ", but it did."
|
84
|
+
message
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
80
88
|
private
|
81
89
|
|
82
90
|
def all_notifications
|
@@ -29,9 +29,9 @@ module ChefSpec::Matchers
|
|
29
29
|
def failure_message_for_should
|
30
30
|
message = %Q{expected Chef run to render "#{@path}"}
|
31
31
|
if @expected_content
|
32
|
-
message << "
|
32
|
+
message << " matching:"
|
33
33
|
message << "\n\n"
|
34
|
-
message <<
|
34
|
+
message << expected_content_message
|
35
35
|
message << "\n\n"
|
36
36
|
message << "but got:"
|
37
37
|
message << "\n\n"
|
@@ -44,9 +44,9 @@ module ChefSpec::Matchers
|
|
44
44
|
def failure_message_for_should_not
|
45
45
|
message = %Q{expected file "#{@path}"}
|
46
46
|
if @expected_content
|
47
|
-
message << "
|
47
|
+
message << " matching:"
|
48
48
|
message << "\n\n"
|
49
|
-
message <<
|
49
|
+
message << expected_content_message
|
50
50
|
message << "\n\n"
|
51
51
|
end
|
52
52
|
message << " to not be in Chef run"
|
@@ -55,6 +55,14 @@ module ChefSpec::Matchers
|
|
55
55
|
|
56
56
|
private
|
57
57
|
|
58
|
+
def expected_content_message
|
59
|
+
if RSpec::Matchers.is_a_matcher?(@expected_content) && @expected_content.respond_to?(:description)
|
60
|
+
@expected_content.description
|
61
|
+
else
|
62
|
+
@expected_content.to_s
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
58
66
|
def resource
|
59
67
|
@resource ||= @runner.find_resource(:cookbook_file, @path) ||
|
60
68
|
@runner.find_resource(:file, @path) ||
|
@@ -88,6 +96,8 @@ module ChefSpec::Matchers
|
|
88
96
|
|
89
97
|
if @expected_content.is_a?(Regexp)
|
90
98
|
@actual_content =~ @expected_content
|
99
|
+
elsif RSpec::Matchers.is_a_matcher?(@expected_content)
|
100
|
+
@expected_content.matches?(@actual_content)
|
91
101
|
else
|
92
102
|
@actual_content.include?(@expected_content)
|
93
103
|
end
|
data/lib/chefspec/version.rb
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ChefSpec::Matchers::NotificationsMatcher do
|
4
|
-
|
4
|
+
subject { described_class.new('execute[install]') }
|
5
|
+
let(:package) do
|
6
|
+
double('package',
|
7
|
+
name: 'package',
|
8
|
+
to_s: 'package[foo]',
|
9
|
+
is_a?: true,
|
10
|
+
performed_action?: true,
|
11
|
+
immediate_notifications: [],
|
12
|
+
delayed_notifications: [],
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#failure_message_for_should' do
|
17
|
+
it 'has the right value' do
|
18
|
+
subject.matches?(package)
|
19
|
+
expect(subject.failure_message_for_should)
|
20
|
+
.to include %|expected "package[foo]" to notify "execute[install]", but did not.|
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#failure_message_for_should_not' do
|
25
|
+
it 'has the right value' do
|
26
|
+
subject.matches?(package)
|
27
|
+
expect(subject.failure_message_for_should_not)
|
28
|
+
.to eq %|expected "package[foo]" to not notify "execute[install]", but it did.|
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#description' do
|
33
|
+
it 'has the right value' do
|
34
|
+
subject.matches?(package)
|
35
|
+
expect(subject.description)
|
36
|
+
.to eq %|notify "execute[install]"|
|
37
|
+
end
|
38
|
+
end
|
5
39
|
end
|
@@ -1,5 +1,64 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ChefSpec::Matchers::SubscribesMatcher do
|
4
|
-
|
4
|
+
subject { described_class.new('execute[install]') }
|
5
|
+
let(:runner) { double('runner', find_resource: nil) }
|
6
|
+
let(:run_context) { double('run_context', node: node) }
|
7
|
+
let(:node) { double('node', runner: runner) }
|
8
|
+
let(:package) do
|
9
|
+
double('package',
|
10
|
+
name: 'package',
|
11
|
+
to_s: 'package[foo]',
|
12
|
+
run_context: run_context,
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when no resource is found' do
|
17
|
+
describe '#failure_message_for_should' do
|
18
|
+
it 'has the right value' do
|
19
|
+
subject.matches?(package)
|
20
|
+
expect(subject.failure_message_for_should)
|
21
|
+
.to include %|expected _something_ to notify "package[foo]", but the _something_ you gave me was nil! If you are running a test like:|
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when the resource exists' do
|
27
|
+
let(:execute) do
|
28
|
+
double('execute',
|
29
|
+
name: 'execute',
|
30
|
+
to_s: 'execute[install]',
|
31
|
+
immediate_notifications: [],
|
32
|
+
delayed_notifications: [],
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
before do
|
37
|
+
runner.stub(:find_resource).and_return(execute)
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#failure_message_for_should' do
|
41
|
+
it 'has the right value' do
|
42
|
+
subject.matches?(package)
|
43
|
+
expect(subject.failure_message_for_should)
|
44
|
+
.to include %|expected "execute[install]" to notify "package[foo]", but did not.|
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#failure_message_for_should_not' do
|
49
|
+
it 'has the right value' do
|
50
|
+
subject.matches?(package)
|
51
|
+
expect(subject.failure_message_for_should_not)
|
52
|
+
.to eq %|expected "execute[install]" to not notify "package[foo]", but it did.|
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#description' do
|
58
|
+
it 'has the right value' do
|
59
|
+
subject.matches?(package)
|
60
|
+
expect(subject.description)
|
61
|
+
.to eq %|notify "package[foo]"|
|
62
|
+
end
|
63
|
+
end
|
5
64
|
end
|
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: 3.
|
4
|
+
version: 3.4.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: 2014-03-
|
12
|
+
date: 2014-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -201,6 +201,8 @@ files:
|
|
201
201
|
- examples/directory/recipes/delete.rb
|
202
202
|
- examples/directory/spec/create_spec.rb
|
203
203
|
- examples/directory/spec/delete_spec.rb
|
204
|
+
- examples/do_nothing/recipes/default.rb
|
205
|
+
- examples/do_nothing/spec/default_spec.rb
|
204
206
|
- examples/dpkg_package/recipes/install.rb
|
205
207
|
- examples/dpkg_package/recipes/purge.rb
|
206
208
|
- examples/dpkg_package/recipes/remove.rb
|
@@ -553,6 +555,7 @@ files:
|
|
553
555
|
- features/custom_matcher.feature
|
554
556
|
- features/deploy.feature
|
555
557
|
- features/directory.feature
|
558
|
+
- features/do_nothing.feature
|
556
559
|
- features/dpkg_package.feature
|
557
560
|
- features/easy_install_package.feature
|
558
561
|
- features/env.feature
|
@@ -628,6 +631,7 @@ files:
|
|
628
631
|
- lib/chefspec/api/cron.rb
|
629
632
|
- lib/chefspec/api/deploy.rb
|
630
633
|
- lib/chefspec/api/directory.rb
|
634
|
+
- lib/chefspec/api/do_nothing.rb
|
631
635
|
- lib/chefspec/api/dpkg_package.rb
|
632
636
|
- lib/chefspec/api/easy_install_package.rb
|
633
637
|
- lib/chefspec/api/env.rb
|
@@ -687,6 +691,7 @@ files:
|
|
687
691
|
- lib/chefspec/librarian.rb
|
688
692
|
- lib/chefspec/macros.rb
|
689
693
|
- lib/chefspec/matchers.rb
|
694
|
+
- lib/chefspec/matchers/do_nothing_matcher.rb
|
690
695
|
- lib/chefspec/matchers/include_recipe_matcher.rb
|
691
696
|
- lib/chefspec/matchers/link_to_matcher.rb
|
692
697
|
- lib/chefspec/matchers/notifications_matcher.rb
|
@@ -719,6 +724,7 @@ files:
|
|
719
724
|
- spec/unit/expect_exception_spec.rb
|
720
725
|
- spec/unit/extensions/lwrp_base_spec.rb
|
721
726
|
- spec/unit/macros_spec.rb
|
727
|
+
- spec/unit/matchers/do_nothing_matcher.rb
|
722
728
|
- spec/unit/matchers/include_recipe_matcher_spec.rb
|
723
729
|
- spec/unit/matchers/link_to_matcher_spec.rb
|
724
730
|
- spec/unit/matchers/notifications_matcher_spec.rb
|
@@ -778,6 +784,7 @@ test_files:
|
|
778
784
|
- features/custom_matcher.feature
|
779
785
|
- features/deploy.feature
|
780
786
|
- features/directory.feature
|
787
|
+
- features/do_nothing.feature
|
781
788
|
- features/dpkg_package.feature
|
782
789
|
- features/easy_install_package.feature
|
783
790
|
- features/env.feature
|
@@ -846,6 +853,7 @@ test_files:
|
|
846
853
|
- spec/unit/expect_exception_spec.rb
|
847
854
|
- spec/unit/extensions/lwrp_base_spec.rb
|
848
855
|
- spec/unit/macros_spec.rb
|
856
|
+
- spec/unit/matchers/do_nothing_matcher.rb
|
849
857
|
- spec/unit/matchers/include_recipe_matcher_spec.rb
|
850
858
|
- spec/unit/matchers/link_to_matcher_spec.rb
|
851
859
|
- spec/unit/matchers/notifications_matcher_spec.rb
|