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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1e257e3afad8b9949cc012ddb1d913d4760c6c4a
4
- data.tar.gz: 5c3c8b1c013c07f6684af60bb37fc4f7d60bcd2d
2
+ SHA256:
3
+ metadata.gz: 343304b90e8572e2049c53a0d6ba2145909da0095e0e0d311fb70cca112be83e
4
+ data.tar.gz: 5c4e4906cc5dc7b110bc562394109c617a568584d55e0e917b9032e33709d455
5
5
  SHA512:
6
- metadata.gz: 7c0a689f0acde41bf4a35c415524a3be0ceb210e0a9d4d2e87e74f8e3a03683b8ae41073278924008444e567cfd538187838cf010132779de249fd0cf50b1ad8
7
- data.tar.gz: e5935b94e986dd5589f8bdd47bcb149514fe01d8d39d7ed8221130bd06919823d43cada436e30be1b0aacfda47266c77036fd7d998f8f79770eac6b55d8dd7ff
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 [![Build Status](https://travis-ci.org/fujimura/rspec-something.png)](https://travis-ci.org/fujimura/rspec-something)
1
+ # rspec-something [![Build Status](https://github.com/fujimura/rspec-something/actions/workflows/ci.yml/badge.svg)](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.should_receive :deliver
12
- UserMailer.should_receive(:hello).and_return mail
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.should_receive(:hello).and_return something.deliver
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
@@ -0,0 +1,11 @@
1
+ ## 0.0.1
2
+
3
+ - Initial commit
4
+
5
+ ## 0.0.2
6
+
7
+ - Update dependency
8
+
9
+ ## 0.0.3
10
+
11
+ - RSpec 3 support
@@ -11,8 +11,15 @@ module Rspec
11
11
  # and return double itself.
12
12
  #
13
13
  def method_missing(name, *args)
14
- (should_be_received? ? @double.should_receive(name) : @double.should_not_receive(name))
15
- .tap {|o| o.with(*args) unless args.empty? }
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
@@ -1,5 +1,5 @@
1
1
  module Rspec
2
2
  module Something
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -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", "~> 2.13"
21
+ spec.add_dependency "rspec", "~> 3"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
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
@@ -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.should_receive(:new).and_return something.deliver
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.should_receive(:new).and_return something.register(true)
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.should_receive(:new).and_return something.won_t.deliver
21
- Mailer.new
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.should_receive(:new).and_return something.won_t.register(false)
26
- Mailer.new.register(true)
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.2
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: 2013-06-08 00:00:00.000000000 Z
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: '2.13'
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: '2.13'
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: '1.3'
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: '1.3'
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
- - .gitignore
63
- - .travis.yml
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
- rubyforge_project:
94
- rubygems_version: 2.0.2
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: