rspec-block_is_expected 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +34 -4
- data/CONTRIBUTING.md +32 -17
- data/LICENSE.txt +1 -1
- data/README.md +197 -82
- data/SECURITY.md +13 -0
- data/lib/rspec/block_is_expected/rspec.rb +6 -6
- data/lib/rspec/block_is_expected/shared_examples/block_does_not_raise_examples.rb +5 -0
- data/lib/rspec/block_is_expected/shared_examples/block_raises_error_examples.rb +5 -0
- data/lib/rspec/block_is_expected/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +93 -28
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29d909e2873766b37f4471c2aed8edf9078432b514f964ae8cab5e534e89a4e2
|
4
|
+
data.tar.gz: e83daabfe2ba4bf79bb085c816b02bf033e9367285d52a315db41a0b7ed9fc6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2ddbefcfec8932992996837096e1f64af24ff09a1777fa278d6f880ca3c553758d0f8b3edf841bb0dd4efa4a0855a9a36392a7a1a2c774dd4185f863705d192
|
7
|
+
data.tar.gz: 9adad062146654efa05b2cfb61706afead7a763b9c8b52a153b824cf5550f16b17116c000f97093c90691b89c1a2a0becc145edc96a2e335254084edbfe3bf04
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Changelog
|
2
|
-
All notable changes to this project will be documented in this file.
|
2
|
+
All notable changes to this project since v1.0.3 will be documented in this file.
|
3
3
|
|
4
4
|
The format is based on [Keep a Changelog v1](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.0.0.html).
|
@@ -10,7 +10,17 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
|
|
10
10
|
### Fixed
|
11
11
|
### Removed
|
12
12
|
|
13
|
-
## [1.0.
|
13
|
+
## [1.0.6] 2024-06-23 ([tag][1.0.6t])
|
14
|
+
### Added
|
15
|
+
- Security policy (SECURITY.md)
|
16
|
+
- Random ordering of test suite
|
17
|
+
- shared examples:
|
18
|
+
- `block_is_expected to not raise`
|
19
|
+
- `block_is_expected to raise error`
|
20
|
+
- Appraisals for testing on every Ruby supported by GHA (2.0 - 3.3)
|
21
|
+
- Signed release
|
22
|
+
|
23
|
+
## [1.0.5] - 2023-04-01 ([tag][1.0.5t])
|
14
24
|
### Added
|
15
25
|
- Structured gemfiles
|
16
26
|
- Rubocop with standard, gradual, & more
|
@@ -23,7 +33,7 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
|
|
23
33
|
### Fixed
|
24
34
|
- README Badges (CI status)
|
25
35
|
|
26
|
-
## [1.0.4] - 2023-03-23
|
36
|
+
## [1.0.4] - 2023-03-23 ([tag][1.0.4t])
|
27
37
|
### Added
|
28
38
|
- Required ruby version in gemspec >= 1.8.7
|
29
39
|
- not bumping major version, because this was already the de-facto minimum
|
@@ -33,7 +43,27 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
|
|
33
43
|
- documentation of rubocop config
|
34
44
|
- Copyright years
|
35
45
|
|
36
|
-
## [1.0.3] - 2023-03-23
|
46
|
+
## [1.0.3] - 2023-03-23 ([tag][1.0.3t])
|
37
47
|
### Added
|
38
48
|
- negated matchers
|
39
49
|
- rubocop config
|
50
|
+
|
51
|
+
## [1.0.2] - 2018-10-03
|
52
|
+
|
53
|
+
## [1.0.1] - 2018-10-01
|
54
|
+
|
55
|
+
## 1.0.0 - 2018-10-01
|
56
|
+
### Added
|
57
|
+
- Initial Release
|
58
|
+
|
59
|
+
[Unreleased]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.6...HEAD
|
60
|
+
[1.0.6]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.5...v1.0.6
|
61
|
+
[1.0.6t]: https://github.com/pboling/rspec-block_is_expected/tags/v1.0.6
|
62
|
+
[1.0.5]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.4...v1.0.5
|
63
|
+
[1.0.5t]: https://github.com/pboling/rspec-block_is_expected/tags/v1.0.5
|
64
|
+
[1.0.4]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.3...v1.0.4
|
65
|
+
[1.0.4t]: https://github.com/pboling/rspec-block_is_expected/tags/v1.0.4
|
66
|
+
[1.0.3]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.2...v1.0.3
|
67
|
+
[1.0.3t]: https://github.com/pboling/rspec-block_is_expected/tags/v1.0.3
|
68
|
+
[1.0.2]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.1...v1.0.2
|
69
|
+
[1.0.1]: https://github.com/pboling/rspec-block_is_expected/compare/v1.0.0...v1.0.1
|
data/CONTRIBUTING.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
## Contributing
|
2
2
|
|
3
|
-
Bug reports and pull requests are welcome on
|
3
|
+
Bug reports and pull requests are welcome on GitHub at [https://github.com/pboling/rspec-block_is_expected][🚎src-main]
|
4
4
|
. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
|
5
|
-
the [code of conduct][conduct].
|
5
|
+
the [code of conduct][🤝conduct].
|
6
6
|
|
7
7
|
To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request
|
8
8
|
and post a message to the [gitter chat][🏘chat].
|
@@ -11,26 +11,41 @@ and post a message to the [gitter chat][🏘chat].
|
|
11
11
|
|
12
12
|
To release a new version:
|
13
13
|
|
14
|
-
1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
|
15
|
-
2.
|
16
|
-
3.
|
17
|
-
4.
|
18
|
-
5.
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
|
15
|
+
2. Update the version number in `version.rb`
|
16
|
+
3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
|
17
|
+
4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
|
18
|
+
5. Run `git push` to trigger the final CI pipeline before release, & merge PRs
|
19
|
+
a. NOTE: Remember to [check the build][🧪build]!
|
20
|
+
6. Run `git checkout main`
|
21
|
+
7. Run `git pull origin main` to ensure you will release the latest trunk code.
|
22
|
+
8. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
|
23
|
+
a. Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
|
24
|
+
b. If the echo above has no output, then it didn't work.
|
25
|
+
c. Note that you'll need the `zsh/datetime` module, if running `zsh`.
|
26
|
+
9. Run `bundle exec rake build`
|
27
|
+
10. Run [`bin/checksums`][🔒️rubygems-checksums-pr] to create SHA-256 and SHA-512 checksums
|
28
|
+
a. Checksums will be committed automatically by the script, but not pushed
|
29
|
+
11. Run `bundle exec rake release` which will create a git tag for the version,
|
30
|
+
push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
|
22
31
|
|
23
32
|
NOTE: You will need to have a public key in `certs/`, and list your cert in the
|
24
33
|
`gemspec`, in order to sign the new release.
|
25
|
-
See: [RubyGems Security Guide][rubygems-security-guide]
|
34
|
+
See: [RubyGems Security Guide][🔒️rubygems-security-guide]
|
26
35
|
|
27
36
|
## Contributors
|
28
37
|
|
29
|
-
|
38
|
+
[![Contributors][🖐contributors-img]][🖐contributors]
|
30
39
|
|
31
|
-
[
|
32
|
-
|
33
|
-
[
|
40
|
+
Made with [contributors-img][🖐contrib-rocks].
|
41
|
+
|
42
|
+
[🧪build]: https://github.com/pboling/rspec-block_is_expected/actions
|
34
43
|
[🏘chat]: https://matrix.to/#/%23pboling_rspec-block_is_expected:gitter.im
|
35
|
-
[
|
36
|
-
[
|
44
|
+
[🤝conduct]: https://github.com/pboling/rspec-block_is_expected/blob/main/CODE_OF_CONDUCT.md
|
45
|
+
[🖐contrib-rocks]: https://contrib.rocks
|
46
|
+
[🖐contributors]: https://github.com/pboling/rspec-block_is_expected/graphs/contributors
|
47
|
+
[🖐contributors-img]: https://contrib.rocks/image?repo=pboling/rspec-block_is_expected
|
48
|
+
[💎rubygems]: https://rubygems.org
|
49
|
+
[🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
|
50
|
+
[🔒️rubygems-checksums-pr]: https://github.com/rubygems/guides/pull/325
|
51
|
+
[🚎src-main]: https://github.com/pboling/rspec-block_is_expected
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,29 +1,121 @@
|
|
1
1
|
# Rspec::BlockIsExpected
|
2
2
|
|
3
|
-
|
3
|
+
<div id="badges">
|
4
4
|
|
5
|
+
[![CI Build][🚎dl-cwfi]][🚎dl-cwf]
|
6
|
+
[![Test Coverage][🔑cc-covi]][🔑cc-cov]
|
7
|
+
[![Maintainability][🔑cc-mnti]][🔑cc-mnt]
|
8
|
+
[![Depfu][🔑depfui]][🔑depfu]
|
9
|
+
|
10
|
+
[🚎dl-cwf]: https://github.com/pboling/rspec-block_is_expected/actions/workflows/current.yml
|
11
|
+
[🚎dl-cwfi]: https://github.com/pboling/rspec-block_is_expected/actions/workflows/current.yml/badge.svg
|
12
|
+
|
13
|
+
[comment]: <> ( 🔑 KEYED LINKS )
|
14
|
+
|
15
|
+
[🔑cc-mnt]: https://codeclimate.com/github/pboling/rspec-block_is_expected/maintainability
|
16
|
+
[🔑cc-mnti]: https://api.codeclimate.com/v1/badges/ca0a12604ecc19f5e76d/maintainability
|
17
|
+
[🔑cc-cov]: https://codeclimate.com/github/pboling/rspec-block_is_expected/test_coverage
|
18
|
+
[🔑cc-covi]: https://api.codeclimate.com/v1/badges/ca0a12604ecc19f5e76d/test_coverage
|
19
|
+
[🔑depfu]: https://depfu.com/github/pboling/rspec-block_is_expected?project_id=5865
|
20
|
+
[🔑depfui]: https://badges.depfu.com/badges/79867e590f063376f40b031a1447c215/count.svg
|
21
|
+
|
22
|
+
-----
|
23
|
+
|
24
|
+
[![Liberapay Patrons][⛳liberapay-img]][⛳liberapay]
|
25
|
+
[![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]
|
26
|
+
|
27
|
+
<span class="badge-buymeacoffee">
|
28
|
+
<a href="https://ko-fi.com/O5O86SNP4" target='_blank' title="Donate to my FLOSS or refugee efforts at ko-fi.com"><img src="https://img.shields.io/badge/buy%20me%20coffee-donate-yellow.svg" alt="Buy me coffee donation button" /></a>
|
29
|
+
</span>
|
30
|
+
<span class="badge-patreon">
|
31
|
+
<a href="https://patreon.com/galtzo" title="Donate to my FLOSS or refugee efforts using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a>
|
32
|
+
</span>
|
33
|
+
|
34
|
+
</div>
|
35
|
+
|
36
|
+
[⛳liberapay-img]: https://img.shields.io/liberapay/patrons/pboling.svg?logo=liberapay
|
37
|
+
[⛳liberapay]: https://liberapay.com/pboling/donate
|
38
|
+
[🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
|
39
|
+
[🖇sponsor]: https://github.com/sponsors/pboling
|
40
|
+
|
41
|
+
This gem does ~~five~~, _three sir_, five things.
|
42
|
+
|
43
|
+
1. Provides `block_is_expected` to set expectations on the result of running the `subject` as a block.
|
44
|
+
2. Provides, via shared example groups, shortcut RSpec macros for setting an expectation on errors being raised (or not).
|
45
|
+
```ruby
|
46
|
+
it_behaves_like "block_is_expected to not raise"
|
47
|
+
it_behaves_like "block_is_expected to raise error", RuntimeError
|
48
|
+
```
|
49
|
+
3. Provides RSpec negated matchers that can be used with `block_is_expected`:
|
50
|
+
```ruby
|
51
|
+
not_change
|
52
|
+
not_raise_error
|
53
|
+
```
|
54
|
+
And two others that are so generally useful I end up defining them on every project:
|
55
|
+
```ruby
|
56
|
+
not_include
|
57
|
+
not_eq
|
58
|
+
```
|
59
|
+
|
60
|
+
## Just show me the money
|
61
|
+
|
62
|
+
First, configure in your rspec helper, or similar:
|
5
63
|
```ruby
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
64
|
+
require "rspec/block_is_expected"
|
65
|
+
```
|
66
|
+
|
67
|
+
Then,
|
68
|
+
|
69
|
+
1. Custom expectation on result of subject as block
|
70
|
+
```ruby
|
71
|
+
subject { Integer("1") }
|
72
|
+
it("raises") { block_is_expected.to(not_raise_error) }
|
73
|
+
```
|
74
|
+
2. Subject will not raise an exception
|
75
|
+
```ruby
|
76
|
+
subject { Integer("1") }
|
77
|
+
it_behaves_like "block_is_expected to not raise"
|
78
|
+
```
|
79
|
+
3. Subject will raise an exception
|
80
|
+
```ruby
|
81
|
+
subject { Integer(nil) }
|
82
|
+
it_behaves_like "block_is_expected to raise error", TypeError
|
83
|
+
```
|
84
|
+
|
85
|
+
| Project | `bundle add rspec-block_is_expected --group test` |
|
86
|
+
|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
87
|
+
| name, license, docs, standards | [![RubyGems.org][⛳️name-img]][⛳️gem] [![License: MIT][🖇src-license-img]][🖇src-license] [![RubyDoc.info][🚎yard-img]][🚎yard] [![SemVer 2.0.0][🧮semver-img]][🧮semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] |
|
88
|
+
| version & activity | [![Gem Version][⛳️version-img]][⛳️gem] [![Total Downloads][🖇DL-total-img]][⛳️gem] [![Download Rank][🏘DL-rank-img]][⛳️gem] |
|
89
|
+
| dependencies | [![Depfu][🔑depfui]][🔑depfu] |
|
90
|
+
| continuous integration | [![CI Build][🚎dl-cwfi]][🚎dl-cwf] [![Heads][🖐hwfi]][🖐hwf] [![Style][🧮swfi]][🧮swf] |
|
91
|
+
| test coverage | [![Test Coverage][🔑cc-covi]][🔑cc-cov] |
|
92
|
+
| maintainability | [![Maintainability](https://api.codeclimate.com/v1/badges/ca0a12604ecc19f5e76d/maintainability)](https://codeclimate.com/github/pboling/rspec-block_is_expected/maintainability) |
|
93
|
+
| code triage | [![Open Source Helpers](https://www.codetriage.com/pboling/rspec-block_is_expected/badges/users.svg)](https://www.codetriage.com/pboling/rspec-block_is_expected) |
|
94
|
+
| homepage | [on Github.com][homepage], [on Railsbling.com][blogpage] |
|
95
|
+
| documentation | [on RDoc.info][documentation] |
|
96
|
+
| `...` 💖 | [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay], [🧊][🧊berg], [🛖][🛖hut], [🧪][🧪lab], [🌏][aboutme], [👼][angellist], [⚗️][devto], [![Tweet @galtzo][followme]][twitter] |
|
97
|
+
|
98
|
+
<!--
|
99
|
+
The link tokens in the following sections should be kept ordered by the row and badge numbering scheme
|
100
|
+
-->
|
101
|
+
|
102
|
+
<!-- 1️⃣ name, license, docs -->
|
103
|
+
[⛳️gem]: https://rubygems.org/gems/rspec-block_is_expected
|
104
|
+
[⛳️name-img]: https://img.shields.io/badge/name-rspec--block__is__expected-brightgreen.svg?style=flat
|
105
|
+
[🖇src-license]: https://opensource.org/licenses/MIT
|
106
|
+
[🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg
|
107
|
+
[🚎yard]: https://www.rubydoc.info/gems/rspec-block_is_expected
|
108
|
+
[🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat
|
109
|
+
[🧮semver]: http://semver.org/
|
110
|
+
[🧮semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
|
111
|
+
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
112
|
+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
|
113
|
+
|
114
|
+
<!-- 2️⃣ version & activity -->
|
115
|
+
[⛳️version-img]: http://img.shields.io/gem/v/rspec-block_is_expected.svg
|
116
|
+
[🖇DL-total-img]: https://img.shields.io/gem/dt/rspec-block_is_expected.svg
|
117
|
+
[🏘DL-rank-img]: https://img.shields.io/gem/rt/rspec-block_is_expected.svg
|
118
|
+
|
27
119
|
[🖐hwf]: https://github.com/pboling/rspec-block_is_expected/actions/workflows/heads.yml
|
28
120
|
[🖐hwfi]: https://github.com/pboling/rspec-block_is_expected/actions/workflows/heads.yml/badge.svg
|
29
121
|
[🧮swf]: https://github.com/pboling/rspec-block_is_expected/actions/workflows/style.yml
|
@@ -31,12 +123,16 @@ it("raises") { block_is_expected.to(raise_error(TypeError)) }
|
|
31
123
|
|
32
124
|
If you only _ever_ want to test subjects wrapped in blocks, and are comfortable with **losing** the standard `is_expected` behavior, see an alternative to this gem [here](https://github.com/christopheraue/ruby-rspec-is_expected_block/).
|
33
125
|
|
126
|
+
## Ruby Compatibility
|
127
|
+
Supports the same versions of Ruby that RSpec does, 1.8.7 - current ruby-head,
|
128
|
+
as well as the JRuby equivalents.
|
129
|
+
|
34
130
|
## Installation
|
35
131
|
|
36
132
|
Add this line to your application's Gemfile:
|
37
133
|
|
38
134
|
```ruby
|
39
|
-
gem "rspec-block_is_expected", :group => :test
|
135
|
+
gem "rspec-block_is_expected", :group => :test
|
40
136
|
```
|
41
137
|
|
42
138
|
And then execute:
|
@@ -53,7 +149,7 @@ There is no configuration needed if you your test suite loads the bundle group (
|
|
53
149
|
|
54
150
|
Otherwise, you may load it manually near the top of your `spec_helper.rb`, and it will self configure.
|
55
151
|
```ruby
|
56
|
-
require "rspec/block_is_expected"
|
152
|
+
require "rspec/block_is_expected"
|
57
153
|
```
|
58
154
|
|
59
155
|
### RSpec Matchers
|
@@ -63,15 +159,15 @@ but `to_not` doesn't work with multiple expectations.
|
|
63
159
|
So negated matchers are required. A basic set of them are included with this gem, and can be loaded with:
|
64
160
|
|
65
161
|
```ruby
|
66
|
-
require "rspec/block_is_expected/matchers/not"
|
162
|
+
require "rspec/block_is_expected/matchers/not"
|
67
163
|
```
|
68
164
|
|
69
165
|
This gives you the following matchers:
|
70
166
|
```ruby
|
71
|
-
RSpec::Matchers.define_negated_matcher(:not_change, :change)
|
72
|
-
RSpec::Matchers.define_negated_matcher(:not_include, :include)
|
73
|
-
RSpec::Matchers.define_negated_matcher(:not_eq, :eq)
|
74
|
-
RSpec::Matchers.define_negated_matcher(:not_raise_error, :raise_error)
|
167
|
+
RSpec::Matchers.define_negated_matcher(:not_change, :change)
|
168
|
+
RSpec::Matchers.define_negated_matcher(:not_include, :include)
|
169
|
+
RSpec::Matchers.define_negated_matcher(:not_eq, :eq)
|
170
|
+
RSpec::Matchers.define_negated_matcher(:not_raise_error, :raise_error)
|
75
171
|
```
|
76
172
|
|
77
173
|
#### Example
|
@@ -79,28 +175,28 @@ RSpec::Matchers.define_negated_matcher(:not_raise_error, :raise_error)
|
|
79
175
|
You have a module like this:
|
80
176
|
|
81
177
|
```ruby
|
82
|
-
module MyTasks
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
end
|
178
|
+
module MyTasks
|
179
|
+
def my_rakelib
|
180
|
+
Rake.add_rakelib("bananas")
|
181
|
+
end
|
182
|
+
module_function :my_rakelib
|
183
|
+
end
|
88
184
|
```
|
89
185
|
|
90
186
|
You have a spec like this:
|
91
187
|
|
92
188
|
```ruby
|
93
|
-
require "rake"
|
94
|
-
|
95
|
-
RSpec.describe(MyTasks) do
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
189
|
+
require "rake"
|
190
|
+
|
191
|
+
RSpec.describe(MyTasks) do
|
192
|
+
describe "my_rakelib" do
|
193
|
+
subject(:my_rakelib) { described_class.my_rakelib }
|
194
|
+
it "updates rakelib" do
|
195
|
+
block_is_expected.to(not_raise_error &
|
196
|
+
change { Rake.application.options.rakelib }.from(["rakelib"]).to(%w[rakelib bananas]))
|
197
|
+
end
|
198
|
+
end
|
101
199
|
end
|
102
|
-
end
|
103
|
-
end
|
104
200
|
```
|
105
201
|
|
106
202
|
### Integration with RuboCop
|
@@ -122,39 +218,39 @@ inherit_gem:
|
|
122
218
|
The spec suite for this gem has some examples of usage, lightly edited here.
|
123
219
|
|
124
220
|
```ruby
|
125
|
-
RSpec.describe("TestyMcTest") do
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
221
|
+
RSpec.describe("TestyMcTest") do
|
222
|
+
context "errors raised" do
|
223
|
+
subject { Integer(nil) }
|
224
|
+
it("can be tested") do
|
225
|
+
# Where you used to have:
|
226
|
+
# expect { subject }.to raise_error(TypeError)
|
227
|
+
block_is_expected.to(raise_error(TypeError))
|
228
|
+
end
|
229
|
+
end
|
230
|
+
context "execution" do
|
231
|
+
let(:mutex) { Mutex.new }
|
232
|
+
subject { mutex.lock }
|
233
|
+
it("can change state") do
|
234
|
+
expect(mutex.locked?).to(eq(false))
|
235
|
+
# Where you used to have:
|
236
|
+
# expect { subject }.to_not raise_error
|
237
|
+
block_is_expected.to_not(raise_error)
|
238
|
+
expect(mutex.locked?).to(eq(true))
|
239
|
+
end
|
240
|
+
end
|
241
|
+
context "changed state" do
|
242
|
+
let(:mutex) { Mutex.new }
|
243
|
+
subject { mutex.lock }
|
244
|
+
it("can be tested") do
|
245
|
+
# Where you used to have:
|
246
|
+
# expect { subject }.to change { mutex.locked? }.from(false).to(true)
|
247
|
+
block_is_expected.to(change { mutex.locked? }.from(false).to(true))
|
248
|
+
end
|
249
|
+
end
|
152
250
|
end
|
153
|
-
end
|
154
|
-
end
|
155
251
|
```
|
156
252
|
|
157
|
-
##
|
253
|
+
## Switch to `main` branch
|
158
254
|
|
159
255
|
We recently migrated from `master` to `main` as the default branch. If this affected your local checkout:
|
160
256
|
```shell
|
@@ -184,6 +280,25 @@ See [CONTRIBUTING.md][contributing].
|
|
184
280
|
See [CONTRIBUTING.md][contributing].
|
185
281
|
[contributing]: https://gitlab.com/pboling/rspec-stubbed_env/-/blob/main/CONTRIBUTING.md
|
186
282
|
|
283
|
+
### Running Specs
|
284
|
+
|
285
|
+
The basic compatibility matrix:
|
286
|
+
```sh
|
287
|
+
appraisal install
|
288
|
+
appraisal rake test
|
289
|
+
```
|
290
|
+
|
291
|
+
Sometimes also:
|
292
|
+
```sh
|
293
|
+
BUNDLE_GEMFILE=gemfiles/vanilla.gemfile appraisal update
|
294
|
+
```
|
295
|
+
|
296
|
+
NOTE: This results in bad paths to the gemspec.
|
297
|
+
`gemspec path: "../../"` needs to be replaced with `gemspec :path => "../"` in each Appraisal gemfile.
|
298
|
+
|
299
|
+
Except, is unlikely to be possible to install all of the supported Rubies & Railsies in a single container...
|
300
|
+
See the various github action workflows for more inspiration on running certain oldies.
|
301
|
+
|
187
302
|
## Code of Conduct
|
188
303
|
|
189
304
|
Everyone interacting in the AnonymousActiveRecord project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct][conduct].
|
@@ -202,27 +317,27 @@ dependency on this gem using the [Pessimistic Version Constraint][pvc] with two
|
|
202
317
|
|
203
318
|
For example in a `Gemfile`:
|
204
319
|
|
205
|
-
|
320
|
+
```ruby
|
321
|
+
gem "rspec-block_is_expected", "~> 1.0", :group => [:development, :test]
|
322
|
+
```
|
206
323
|
|
207
324
|
or in a `gemspec`
|
208
325
|
|
209
|
-
|
326
|
+
```ruby
|
327
|
+
spec.add_development_dependency("rspec-block_is_expected", "~> 1.0")
|
328
|
+
```
|
210
329
|
|
211
330
|
## Legal
|
212
331
|
|
213
|
-
* Copyright © 2018, 2020, 2023 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
|
332
|
+
* Copyright © 2018, 2020, 2023 - 2024 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
|
214
333
|
|
215
334
|
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
|
216
335
|
|
217
336
|
[aboutme]: https://about.me/peter.boling
|
218
337
|
[angellist]: https://angel.co/peter-boling
|
219
338
|
[blogpage]: http://www.railsbling.com/tags/rspec-block_is_expected/
|
220
|
-
[cc-cov]: https://codeclimate.com/github/pboling/rspec-block_is_expected/test_coverage
|
221
|
-
[cc-covi]: https://api.codeclimate.com/v1/badges/ca0a12604ecc19f5e76d/test_coverage
|
222
339
|
[conduct]: CODE_OF_CONDUCT.md
|
223
340
|
[contributing]: CONTRIBUTING.md
|
224
|
-
[depfu]: https://depfu.com/github/pboling/rspec-block_is_expected?project_id=5614
|
225
|
-
[depfu-img]: https://badges.depfu.com/badges/272ce0df3bc6df5cbea9354e2c3b65af/count.svg
|
226
341
|
[devto]: https://dev.to/galtzo
|
227
342
|
[documentation]: http://rdoc.info/github/pboling/rspec-block_is_expected/frames
|
228
343
|
[followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
|
data/SECURITY.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Security Policy
|
2
|
+
|
3
|
+
## Supported Versions
|
4
|
+
|
5
|
+
| Version | Supported |
|
6
|
+
|----------|-----------|
|
7
|
+
| 1.latest | ✅ |
|
8
|
+
|
9
|
+
## Reporting a Vulnerability
|
10
|
+
|
11
|
+
Peter Boling is the primary maintainer of this gem. Please find a way
|
12
|
+
to [contact him directly](https://railsbling.com/contact) to report the issue. Include as much relevant information as
|
13
|
+
possible.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require "rspec/core"
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
rescue NameError
|
7
|
-
# Rspec really should be loaded by now...
|
2
|
+
require "rspec/block_is_expected/matchers/not"
|
3
|
+
|
4
|
+
RSpec.configure do |c|
|
5
|
+
c.include(Rspec::BlockIsExpected)
|
8
6
|
end
|
7
|
+
require "rspec/block_is_expected/shared_examples/block_does_not_raise_examples"
|
8
|
+
require "rspec/block_is_expected/shared_examples/block_raises_error_examples"
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-block_is_expected
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
@@ -12,32 +12,94 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
|
14
14
|
ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
15
|
-
|
15
|
+
A2NvbTAeFw0yMzA5MjAxNzMwMjhaFw0yNDA5MTkxNzMwMjhaMEMxFTATBgNVBAMM
|
16
16
|
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
17
|
+
LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA+a9UvHo3
|
18
|
+
84k96WgU5Kk5HB+cLZs/modjorsTfqY67MJF5nNvAoqcKTUBW4uG+Zpfnm3jaDO5
|
19
|
+
GxhJEIZWfndYzycHT2KMVQ1uTP82ba8ZaKrPlPIafkbui3mdds47qsmqHiblKERg
|
20
|
+
U532lkwfqHDlJwE7OBZQ59EwWWLynlT/yAUHpOBbqIuHKUxdpmBI+sIjrZcD1e05
|
21
|
+
WmjkO6fwIdC5oM757aoPxIgXD587VOViH11Vkm2doskj4T8yONtwVHlcrrhJ9Bzd
|
22
|
+
/zdp6vEn7GZQrABvpOlqwWxQ72ZnFhJe/RJZf6CXOPOh69Ai0QKYl2a1sYuCJKS3
|
23
|
+
nsBnxXJINEEznjR7rZjNUmYD+CZqfjzgPqedRxTlASe7iA4w7xZOqMDzcuhNwcUQ
|
24
|
+
tMEH6BTktxKP3jXZPXRfHCf6s+HRVb6vezAonTBVyydf5Xp5VwWkd6cwm+2BzHl5
|
25
|
+
7kc/3lLxKMcsyEUprAsk8LdHohwZdC267l+RS++AP6Cz6x+nB3oGob19AgMBAAGj
|
26
|
+
fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQCSSas60GqqMjt
|
27
|
+
xR7LoY1gucEvtzAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
|
28
28
|
A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
ggGBAMl9ifcw5p+PdvB7dCPoNKoVdp/2LbC9ztETHuYL2gUMJB6UoS3o9c/piSuR
|
30
|
+
V3ZMQaijmNu6ms1bWAtJ66LjmYrVflJtf9yp31Kierr9LpisMSUx2qbMOHGa8d2Z
|
31
|
+
vCUWPF8E9Cg0mP3GAyZ6qql8jDh/anUKeksPXqJvNxNPDu2DVYsa/IWdl96whzS4
|
32
|
+
Bl7SwB1E7agps40UcshCSKaVDOU0M+XN6SrnJMElnBic+KSAkBkVFbzS0BE4ODZM
|
33
|
+
BgE6nYzQ05qhuvbE+oGdACTlemNtDDWCh0uw+7x0q2PocGIDU5zsPn/WNTkCXPmB
|
34
|
+
CHGvqDNWq4M7ncTKAaS2XExgyb7uPdq9fKiOW8nmH+zCiGzJXzBWwZlKf7L4Ht9E
|
35
|
+
a3f0e5C+zvee9Z5Ng9ciyfav9/fcXgYt5MjoBv27THr5XfBhgOCIHSYW2tqJmWKi
|
36
|
+
KuxrfYrN+9HvMdm+nZ6TypmKftHY3Gj+/uu+g8Icm/zrvTWAEE0mcJOkfrIoNPJb
|
37
|
+
pF8dMA==
|
38
38
|
-----END CERTIFICATE-----
|
39
|
-
date:
|
40
|
-
dependencies:
|
39
|
+
date: 2024-06-23 00:00:00.000000000 Z
|
40
|
+
dependencies:
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: appraisal
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.5'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-pending_for
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.1'
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 0.1.16
|
93
|
+
type: :development
|
94
|
+
prerelease: false
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0.1'
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.1.16
|
41
103
|
description: subject { Integer(nil) }; it('raises') { block_is_expected.to raise_error(TypeError)
|
42
104
|
}
|
43
105
|
email:
|
@@ -51,9 +113,12 @@ files:
|
|
51
113
|
- CONTRIBUTING.md
|
52
114
|
- LICENSE.txt
|
53
115
|
- README.md
|
116
|
+
- SECURITY.md
|
54
117
|
- lib/rspec/block_is_expected.rb
|
55
118
|
- lib/rspec/block_is_expected/matchers/not.rb
|
56
119
|
- lib/rspec/block_is_expected/rspec.rb
|
120
|
+
- lib/rspec/block_is_expected/shared_examples/block_does_not_raise_examples.rb
|
121
|
+
- lib/rspec/block_is_expected/shared_examples/block_raises_error_examples.rb
|
57
122
|
- lib/rspec/block_is_expected/version.rb
|
58
123
|
- rubocop.yml
|
59
124
|
homepage: https://github.com/pboling/rspec-block_is_expected
|
@@ -61,10 +126,10 @@ licenses:
|
|
61
126
|
- MIT
|
62
127
|
metadata:
|
63
128
|
homepage_uri: https://github.com/pboling/rspec-block_is_expected
|
64
|
-
source_code_uri: https://github.com/pboling/rspec-block_is_expected/tree/v1.0.
|
65
|
-
changelog_uri: https://github.com/pboling/rspec-block_is_expected/blob/v1.0.
|
129
|
+
source_code_uri: https://github.com/pboling/rspec-block_is_expected/tree/v1.0.6
|
130
|
+
changelog_uri: https://github.com/pboling/rspec-block_is_expected/blob/v1.0.6/CHANGELOG.md
|
66
131
|
bug_tracker_uri: https://github.com/pboling/rspec-block_is_expected/issues
|
67
|
-
documentation_uri: https://www.rubydoc.info/gems/rspec-block_is_expected/1.0.
|
132
|
+
documentation_uri: https://www.rubydoc.info/gems/rspec-block_is_expected/1.0.6
|
68
133
|
funding_uri: https://liberapay.com/pboling
|
69
134
|
wiki_uri: https://github.com/pboling/rspec-block_is_expected/wiki
|
70
135
|
rubygems_mfa_required: 'true'
|
@@ -83,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
148
|
- !ruby/object:Gem::Version
|
84
149
|
version: '0'
|
85
150
|
requirements: []
|
86
|
-
rubygems_version: 3.4.
|
151
|
+
rubygems_version: 3.4.19
|
87
152
|
signing_key:
|
88
153
|
specification_version: 4
|
89
154
|
summary: Simplify testing of blocks in RSpec via block_is_expected
|
metadata.gz.sig
CHANGED
Binary file
|