rspec-something 0.0.2 → 0.0.3
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 +5 -5
- data/.github/workflows/ci.yml +18 -0
- data/README.md +18 -4
- data/RELEASE_NOTES.md +11 -0
- data/lib/rspec/something/proxy.rb +9 -2
- data/lib/rspec/something/version.rb +1 -1
- data/rspec-something.gemspec +3 -2
- data/spec/lib/something_spec.rb +13 -12
- data/spec/spec_helper.rb +22 -1
- metadata +36 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 343304b90e8572e2049c53a0d6ba2145909da0095e0e0d311fb70cca112be83e
|
4
|
+
data.tar.gz: 5c4e4906cc5dc7b110bc562394109c617a568584d55e0e917b9032e33709d455
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc731d5297381d62b2a22b8e58a4d6ec225c788ff55adeb0646d3b3b5e3631956317283a3cf9fbb0f39b54f9bdf12fbc779ddbd3910b5662823571f6907323f7
|
7
|
+
data.tar.gz: a0d6dfda80126f8001b4e690303e5466f447f6d351be7dd3192efbb607965086af8ca376964a6fc551430a7d8cc4209edd7279bd15878b135f95ab48bad97592
|
@@ -0,0 +1,18 @@
|
|
1
|
+
on: [push]
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
build:
|
5
|
+
runs-on: ubuntu-latest
|
6
|
+
strategy:
|
7
|
+
matrix:
|
8
|
+
ruby: ["3.1", "3.2", "3.3"]
|
9
|
+
name: Ruby ${{ matrix.ruby }} sample
|
10
|
+
steps:
|
11
|
+
- uses: actions/checkout@v4
|
12
|
+
- uses: ruby/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
ruby-version: ${{ matrix.ruby }}
|
15
|
+
- run: |
|
16
|
+
gem install bundler
|
17
|
+
bundle install --jobs 4 --retry 3
|
18
|
+
bundle exec rspec
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# rspec-something [](https://github.com/fujimura/rspec-something/actions/workflows/ci.yml)
|
2
2
|
|
3
3
|
Something expects one message in your example.
|
4
4
|
|
@@ -8,14 +8,14 @@ Without rspec-something:
|
|
8
8
|
|
9
9
|
```ruby
|
10
10
|
mail = double
|
11
|
-
mail.
|
12
|
-
UserMailer.
|
11
|
+
expect(mail).to receive(:deliver)
|
12
|
+
expect(UserMailer).to receive(:hello).and_return mail
|
13
13
|
```
|
14
14
|
|
15
15
|
With rspec-something:
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
UserMailer.
|
18
|
+
expect(UserMailer).to receive(:hello).and_return something.deliver
|
19
19
|
```
|
20
20
|
|
21
21
|
Congrats. You saved two lines.
|
@@ -34,6 +34,20 @@ Or install it yourself as:
|
|
34
34
|
|
35
35
|
$ gem install rspec-something
|
36
36
|
|
37
|
+
## Usage
|
38
|
+
|
39
|
+
Require and include matcher:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
require 'rspec/something'
|
43
|
+
|
44
|
+
RSpec.configure do |config|
|
45
|
+
config.include RSpec::Something
|
46
|
+
end
|
47
|
+
```
|
48
|
+
|
49
|
+
See example in "What is this?" section for actual usage.
|
50
|
+
|
37
51
|
## Contributing
|
38
52
|
|
39
53
|
1. Fork it
|
data/RELEASE_NOTES.md
ADDED
@@ -11,8 +11,15 @@ module Rspec
|
|
11
11
|
# and return double itself.
|
12
12
|
#
|
13
13
|
def method_missing(name, *args)
|
14
|
-
|
15
|
-
.
|
14
|
+
receive = RSpec::Mocks::Matchers::Receive.new(name, nil)
|
15
|
+
receive.with(*args) unless args.empty?
|
16
|
+
|
17
|
+
target = RSpec::Mocks::ExpectationTarget.new(@double)
|
18
|
+
if should_be_received?
|
19
|
+
target.to(receive)
|
20
|
+
else
|
21
|
+
target.not_to(receive)
|
22
|
+
end
|
16
23
|
|
17
24
|
@double
|
18
25
|
end
|
data/rspec-something.gemspec
CHANGED
@@ -18,8 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "rspec", "~>
|
21
|
+
spec.add_dependency "rspec", "~> 3"
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~>
|
23
|
+
spec.add_development_dependency "bundler", "~> 2"
|
24
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rspec-expectations", ">= 3"
|
25
26
|
end
|
data/spec/lib/something_spec.rb
CHANGED
@@ -1,28 +1,29 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
class Mailer
|
4
|
-
def deliver; end
|
5
|
-
end
|
6
|
-
|
7
|
-
describe "Something" do
|
3
|
+
class Mailer; end
|
8
4
|
|
5
|
+
describe "#something" do
|
9
6
|
it "should assert that the message was received" do
|
10
|
-
Mailer.
|
7
|
+
expect(Mailer).to receive(:new).and_return something.deliver
|
8
|
+
|
11
9
|
Mailer.new.deliver
|
12
10
|
end
|
13
11
|
|
14
12
|
it "should assert that the message was received with given args" do
|
15
|
-
Mailer.
|
13
|
+
expect(Mailer).to receive(:new).and_return something.register(true)
|
14
|
+
|
16
15
|
Mailer.new.register(true)
|
17
16
|
end
|
18
17
|
|
19
18
|
it "should assert that the message wasn't received" do
|
20
|
-
Mailer.
|
21
|
-
|
19
|
+
expect(Mailer).to receive(:new).and_return something.won_t.deliver
|
20
|
+
|
21
|
+
expect { Mailer.new.deliver }.to raise_mock_expectation_error(/received: 1 time/)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should assert that the message wasn't received with given args" do
|
25
|
-
Mailer.
|
26
|
-
|
25
|
+
expect(Mailer).to receive(:new).and_return something.register(false)
|
26
|
+
|
27
|
+
expect { Mailer.new.register(true) }.to raise_mock_expectation_error(/received :register with unexpected arguments/)
|
27
28
|
end
|
28
|
-
end
|
29
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,9 +2,30 @@ $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
|
2
2
|
$LOAD_PATH << File.join(File.dirname(__FILE__))
|
3
3
|
|
4
4
|
require 'rspec'
|
5
|
-
require 'rspec/autorun'
|
6
5
|
require 'rspec/something'
|
6
|
+
require 'rspec/matchers/fail_matchers'
|
7
|
+
|
8
|
+
RSpec::Matchers.define :raise_mock_expectation_error do |expected_message|
|
9
|
+
match do |block|
|
10
|
+
begin
|
11
|
+
block.call
|
12
|
+
false
|
13
|
+
rescue RSpec::Mocks::MockExpectationError => e
|
14
|
+
expect(e.message).to match expected_message
|
15
|
+
RSpec::Mocks.teardown
|
16
|
+
true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
failure_message do |block|
|
21
|
+
"expected block to raise RSpec::Mocks::MockExpectationError with message matching #{expected_message}"
|
22
|
+
end
|
23
|
+
|
24
|
+
supports_block_expectations
|
25
|
+
end
|
7
26
|
|
8
27
|
RSpec.configure do |config|
|
28
|
+
config.include RSpec::Matchers::FailMatchers
|
29
|
+
|
9
30
|
config.order = "random"
|
10
31
|
end
|
metadata
CHANGED
@@ -1,57 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-something
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fujimura Daisuke
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-expectations
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3'
|
55
69
|
description: Something expects one message in your example
|
56
70
|
email:
|
57
71
|
- me@fujimuradaisuke.com
|
@@ -59,11 +73,13 @@ executables: []
|
|
59
73
|
extensions: []
|
60
74
|
extra_rdoc_files: []
|
61
75
|
files:
|
62
|
-
- .
|
63
|
-
- .
|
76
|
+
- ".github/workflows/ci.yml"
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
64
79
|
- Gemfile
|
65
80
|
- LICENSE.txt
|
66
81
|
- README.md
|
82
|
+
- RELEASE_NOTES.md
|
67
83
|
- Rakefile
|
68
84
|
- lib/rspec/something.rb
|
69
85
|
- lib/rspec/something/proxy.rb
|
@@ -75,27 +91,25 @@ homepage: https://github.com/fujimura/rspec-something
|
|
75
91
|
licenses:
|
76
92
|
- MIT
|
77
93
|
metadata: {}
|
78
|
-
post_install_message:
|
94
|
+
post_install_message:
|
79
95
|
rdoc_options: []
|
80
96
|
require_paths:
|
81
97
|
- lib
|
82
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
99
|
requirements:
|
84
|
-
- -
|
100
|
+
- - ">="
|
85
101
|
- !ruby/object:Gem::Version
|
86
102
|
version: '0'
|
87
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
104
|
requirements:
|
89
|
-
- -
|
105
|
+
- - ">="
|
90
106
|
- !ruby/object:Gem::Version
|
91
107
|
version: '0'
|
92
108
|
requirements: []
|
93
|
-
|
94
|
-
|
95
|
-
signing_key:
|
109
|
+
rubygems_version: 3.5.15
|
110
|
+
signing_key:
|
96
111
|
specification_version: 4
|
97
112
|
summary: Something expects one message in your example
|
98
113
|
test_files:
|
99
114
|
- spec/lib/something_spec.rb
|
100
115
|
- spec/spec_helper.rb
|
101
|
-
has_rdoc:
|