rspec-bash 0.1.0 → 0.1.1
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 +2 -0
- data/README.md +1 -1
- data/lib/rspec/bash/call_log.rb +4 -0
- data/lib/rspec/bash/matchers/called_with_arguments.rb +30 -0
- data/lib/rspec/bash/stubbed_command.rb +4 -0
- data/rspec-bash.gemspec +1 -1
- data/spec/integration/assert_called_spec.rb +0 -0
- data/spec/integration/call_log/called_with_args_spec.rb +35 -0
- metadata +16 -15
- data/return_exitstatus_spec.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8768c8e7a3e2d1a30a82c8a7a4608786d38a619
|
4
|
+
data.tar.gz: aa8e860680f978205a989b10f7f141d89f4c9bb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ad5a2600f1aa8e2e30ff92834aedcbd070d01067f2f9e51683de3624c957ee6bbbd86214dd30bcd4d6816c86714156b2abafeee83791de33757acdaaccf2e4e
|
7
|
+
data.tar.gz: 4bd0fa4d49b57f6618c5ba970359d3f6a2472dc21b5d6d0c6c1f30d709f7f0e9e2eff1f50785cb10cfccece5458428c99d4da59340103377d57c9959e5d8adc8
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
data/lib/rspec/bash/call_log.rb
CHANGED
@@ -7,6 +7,7 @@ RSpec::Matchers.define :be_called_with_arguments do |*expected_argument_list|
|
|
7
7
|
|
8
8
|
match do |actual_command|
|
9
9
|
called_with_correct_args = actual_command.called_with_args?(*expected_argument_list)
|
10
|
+
|
10
11
|
if @expected_invocations
|
11
12
|
called_correct_number_of_times =
|
12
13
|
actual_command.call_count(*expected_argument_list) == @expected_invocations
|
@@ -16,4 +17,33 @@ RSpec::Matchers.define :be_called_with_arguments do |*expected_argument_list|
|
|
16
17
|
|
17
18
|
called_with_correct_args && called_correct_number_of_times
|
18
19
|
end
|
20
|
+
|
21
|
+
failure_message do |actual_command|
|
22
|
+
formatted_actual_calls, formatted_expected_call =
|
23
|
+
get_expected_and_actual_call_strings(actual_command, expected_argument_list)
|
24
|
+
|
25
|
+
"Expected #{actual_command.command} to be called with args #{expected_argument_list}\n\n" \
|
26
|
+
"Expected Calls:\n#{formatted_expected_call}\n\n" \
|
27
|
+
"Actual Calls:\n#{formatted_actual_calls}\n"
|
28
|
+
end
|
29
|
+
|
30
|
+
failure_message_when_negated do |actual_command|
|
31
|
+
formatted_actual_calls, formatted_expected_call =
|
32
|
+
get_expected_and_actual_call_strings(actual_command, expected_argument_list)
|
33
|
+
|
34
|
+
"Expected #{actual_command.command} to not be called with args #{expected_argument_list}\n\n" \
|
35
|
+
"Expected Omissions:\n#{formatted_expected_call}\n\n" \
|
36
|
+
"Actual Calls:\n#{formatted_actual_calls}\n"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_expected_and_actual_call_strings(actual_command, expected_argument_list)
|
41
|
+
command_name = actual_command.command
|
42
|
+
|
43
|
+
formatted_expected_call = "#{command_name} #{expected_argument_list.join(' ')}"
|
44
|
+
formatted_actual_calls = actual_command.call_log.call_log_arguments.map do |arg_array|
|
45
|
+
"#{command_name} #{arg_array.join(' ')}"
|
46
|
+
end.join("\n")
|
47
|
+
|
48
|
+
[formatted_actual_calls, formatted_expected_call]
|
19
49
|
end
|
data/rspec-bash.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'rspec-bash'
|
7
|
-
spec.version = '0.1.
|
7
|
+
spec.version = '0.1.1'
|
8
8
|
spec.authors = ['Ben Brewer', 'Mike Urban', 'Matthijs Groen']
|
9
9
|
spec.email = ['ben@benbrewer.me', 'mike.david.urban@gmail.com']
|
10
10
|
spec.summary = 'Test Bash with RSpec'
|
File without changes
|
@@ -43,6 +43,41 @@ describe 'CallLog' do
|
|
43
43
|
it 'matches for regex matches' do
|
44
44
|
expect(first_command).to be_called_with_arguments(/f..st_argument/, /se..nd_argument/)
|
45
45
|
end
|
46
|
+
|
47
|
+
it 'displays the diff between what was called and what was expected' do
|
48
|
+
begin
|
49
|
+
expect(first_command).to be_called_with_arguments('not_first_argument', 'second_argument')
|
50
|
+
rescue RSpec::Expectations::ExpectationNotMetError => rex
|
51
|
+
expected_error_string = <<-multiline_string
|
52
|
+
Expected first_command to be called with args ["not_first_argument", "second_argument"]
|
53
|
+
|
54
|
+
Expected Calls:
|
55
|
+
first_command not_first_argument second_argument
|
56
|
+
|
57
|
+
Actual Calls:
|
58
|
+
first_command first_argument second_argument
|
59
|
+
first_command first_argument second_argument third_argument
|
60
|
+
multiline_string
|
61
|
+
expect(rex.message).to eql expected_error_string
|
62
|
+
end
|
63
|
+
end
|
64
|
+
it 'displays the diff between what was called and what was not expected' do
|
65
|
+
begin
|
66
|
+
expect(first_command).to_not be_called_with_arguments('first_argument', 'second_argument')
|
67
|
+
rescue RSpec::Expectations::ExpectationNotMetError => rex
|
68
|
+
expected_error_string = <<-multiline_string
|
69
|
+
Expected first_command to not be called with args ["first_argument", "second_argument"]
|
70
|
+
|
71
|
+
Expected Omissions:
|
72
|
+
first_command first_argument second_argument
|
73
|
+
|
74
|
+
Actual Calls:
|
75
|
+
first_command first_argument second_argument
|
76
|
+
first_command first_argument second_argument third_argument
|
77
|
+
multiline_string
|
78
|
+
expect(rex.message).to eql expected_error_string
|
79
|
+
end
|
80
|
+
end
|
46
81
|
end
|
47
82
|
end
|
48
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-bash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Brewer
|
@@ -10,34 +10,34 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - ~>
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '1.6'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - ~>
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '1.6'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '10.0'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '10.0'
|
43
43
|
description: |2
|
@@ -52,11 +52,11 @@ executables:
|
|
52
52
|
extensions: []
|
53
53
|
extra_rdoc_files: []
|
54
54
|
files:
|
55
|
-
- .gitignore
|
56
|
-
- .rspec
|
57
|
-
- .rubocop.yml
|
58
|
-
- .ruby-version
|
59
|
-
- .travis.yml
|
55
|
+
- ".gitignore"
|
56
|
+
- ".rspec"
|
57
|
+
- ".rubocop.yml"
|
58
|
+
- ".ruby-version"
|
59
|
+
- ".travis.yml"
|
60
60
|
- CHANGELOG.md
|
61
61
|
- Gemfile
|
62
62
|
- LICENSE.txt
|
@@ -76,7 +76,6 @@ files:
|
|
76
76
|
- lib/rspec/bash/util.rb
|
77
77
|
- lib/rspec/bash/util/call_conf_argument_list_matcher.rb
|
78
78
|
- lib/rspec/bash/util/call_log_argument_list_matcher.rb
|
79
|
-
- return_exitstatus_spec.rb
|
80
79
|
- rspec-bash.gemspec
|
81
80
|
- spec/classes/call_configuration_spec.rb
|
82
81
|
- spec/classes/call_log_spec.rb
|
@@ -87,6 +86,7 @@ files:
|
|
87
86
|
- spec/classes/util/call_log_argument_list_matcher_spec.rb
|
88
87
|
- spec/helper/shared_tmpdir.rb
|
89
88
|
- spec/helper/string_file_io.rb
|
89
|
+
- spec/integration/assert_called_spec.rb
|
90
90
|
- spec/integration/call_log/called_with_args_spec.rb
|
91
91
|
- spec/integration/call_log/called_with_no_args_spec.rb
|
92
92
|
- spec/integration/call_log/stdin_spec.rb
|
@@ -109,17 +109,17 @@ require_paths:
|
|
109
109
|
- lib
|
110
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
requirements: []
|
121
121
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.2.2
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Test Bash with RSpec
|
@@ -133,6 +133,7 @@ test_files:
|
|
133
133
|
- spec/classes/util/call_log_argument_list_matcher_spec.rb
|
134
134
|
- spec/helper/shared_tmpdir.rb
|
135
135
|
- spec/helper/string_file_io.rb
|
136
|
+
- spec/integration/assert_called_spec.rb
|
136
137
|
- spec/integration/call_log/called_with_args_spec.rb
|
137
138
|
- spec/integration/call_log/called_with_no_args_spec.rb
|
138
139
|
- spec/integration/call_log/stdin_spec.rb
|
data/return_exitstatus_spec.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'English'
|
2
|
-
require 'rspec/bash'
|
3
|
-
|
4
|
-
describe 'very simple script that just exits' do
|
5
|
-
include Rspec::Bash
|
6
|
-
let(:stubbed_env) { create_stubbed_env }
|
7
|
-
it 'returns an exit status of 0' do
|
8
|
-
out, err, rv = stubbed_env.execute_inline('exit 0')
|
9
|
-
|
10
|
-
expect(out).to eql ''
|
11
|
-
expect(err).to eql ''
|
12
|
-
expect(rv.exitstatus).to eql 0
|
13
|
-
end
|
14
|
-
end
|