rspec-something 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: