kettle-test 1.0.6 → 1.0.8
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +35 -1
- data/CONTRIBUTING.md +20 -22
- data/FUNDING.md +7 -10
- data/README.md +50 -68
- data/lib/kettle/test/config/ext/rspec/rspec_stubbed_env.rb +1 -0
- data/lib/kettle/test/config/int/rspec/silent_stream.rb +4 -0
- data/lib/kettle/test/internal.rb +1 -0
- data/lib/kettle/test/version.rb +2 -1
- data/lib/kettle/test.rb +1 -0
- data.tar.gz.sig +0 -0
- metadata +27 -7
- 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: 8873d02c97ae25125b1bd5e28afb7d39569147ecf825a7ee9b1a3bf683625f00
|
|
4
|
+
data.tar.gz: ffa4fb9d179b2c50aaee2916fb1d62f38d1b8f8223b2860b8f70fc6558cf19ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 047db72c8c38f6ff2452a02ac8e3faeebdc38a582ea052ade396114df0d367ccdc83307dc11e083347813a7b87d7febdfda210d454f549ccd8968f353a5cea77
|
|
7
|
+
data.tar.gz: dacda95d681dc7cf866dd14d3fb13abdaff14d72771bbada906654e9231f7ce6df2db0c352537443053f29b2fe0a52c27b0167760153dae50faa8c25e5aebc99
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,36 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.0.8] - 2026-02-06
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.0.8][1.0.8t]
|
|
36
|
+
- COVERAGE: 100.00% -- 86/86 lines in 15 files
|
|
37
|
+
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
|
|
38
|
+
- 100.00% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- rspec/pending_for made available by default
|
|
43
|
+
- `skip_for` and `pending_for` are now available by default, without needing to explicitly require 'rspec/pending_for'
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- Updated documentation on hostile takeover of RubyGems
|
|
48
|
+
- https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
|
|
49
|
+
|
|
50
|
+
## [1.0.7] - 2025-12-06
|
|
51
|
+
|
|
52
|
+
- TAG: [v1.0.7][1.0.7t]
|
|
53
|
+
- COVERAGE: 100.00% -- 84/84 lines in 15 files
|
|
54
|
+
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
|
|
55
|
+
- 100.00% documented
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- traditional `Kettle::Test::VERSION` constant
|
|
60
|
+
- make `hide_env` (from rspec-stubbed_env) available by default
|
|
61
|
+
- increased documentation to 100%, and added many documentation improvements
|
|
62
|
+
|
|
33
63
|
## [1.0.6] - 2025-10-21
|
|
34
64
|
|
|
35
65
|
- TAG: [v1.0.6][1.0.6t]
|
|
@@ -144,7 +174,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
144
174
|
- silent_stream
|
|
145
175
|
- timecop-rspec
|
|
146
176
|
|
|
147
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v1.0.
|
|
177
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v1.0.8...HEAD
|
|
178
|
+
[1.0.8]: https://github.com/kettle-rb/kettle-test/compare/v1.0.7...v1.0.8
|
|
179
|
+
[1.0.8t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.8
|
|
180
|
+
[1.0.7]: https://github.com/kettle-rb/kettle-test/compare/v1.0.6...v1.0.7
|
|
181
|
+
[1.0.7t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.7
|
|
148
182
|
[1.0.6]: https://github.com/kettle-rb/kettle-test/compare/v1.0.5...v1.0.6
|
|
149
183
|
[1.0.6t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.6
|
|
150
184
|
[1.0.5]: https://github.com/kettle-rb/kettle-test/compare/v1.0.4...v1.0.5
|
data/CONTRIBUTING.md
CHANGED
|
@@ -24,31 +24,22 @@ Follow these instructions:
|
|
|
24
24
|
|
|
25
25
|
## Executables vs Rake tasks
|
|
26
26
|
|
|
27
|
-
Executables shipped by
|
|
28
|
-
|
|
27
|
+
Executables shipped by dependencies, such as kettle-dev, and stone_checksums, are available
|
|
28
|
+
after running `bin/setup`. These include:
|
|
29
29
|
|
|
30
|
+
- gem_checksums
|
|
30
31
|
- kettle-changelog
|
|
31
32
|
- kettle-commit-msg
|
|
32
|
-
- kettle-
|
|
33
|
+
- kettle-dev-setup
|
|
33
34
|
- kettle-dvcs
|
|
34
35
|
- kettle-pre-release
|
|
35
36
|
- kettle-readme-backers
|
|
36
37
|
- kettle-release
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
See the full list of rake tasks in head of Rakefile
|
|
39
|
+
There are many Rake tasks available as well. You can see them by running:
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
group :development do
|
|
44
|
-
gem "kettle-test", require: false
|
|
45
|
-
end
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**Rakefile**
|
|
49
|
-
```ruby
|
|
50
|
-
# Rakefile
|
|
51
|
-
require "kettle/test"
|
|
41
|
+
```shell
|
|
42
|
+
bin/rake -T
|
|
52
43
|
```
|
|
53
44
|
|
|
54
45
|
## Environment Variables for Local Development
|
|
@@ -77,7 +68,9 @@ GitHub API and CI helpers
|
|
|
77
68
|
Releasing and signing
|
|
78
69
|
- SKIP_GEM_SIGNING: If set, skip gem signing during build/release
|
|
79
70
|
- GEM_CERT_USER: Username for selecting your public cert in `certs/<USER>.pem` (defaults to $USER)
|
|
80
|
-
- SOURCE_DATE_EPOCH: Reproducible build timestamp.
|
|
71
|
+
- SOURCE_DATE_EPOCH: Reproducible build timestamp.
|
|
72
|
+
- `kettle-release` will set this automatically for the session.
|
|
73
|
+
- Not needed on bundler >= 2.7.0, as reproducible builds have become the default.
|
|
81
74
|
|
|
82
75
|
Git hooks and commit message helpers (exe/kettle-commit-msg)
|
|
83
76
|
- GIT_HOOK_BRANCH_VALIDATE: Branch name validation mode (e.g., `jira`) or `false` to disable
|
|
@@ -96,6 +89,12 @@ They are created and updated with the commands:
|
|
|
96
89
|
bin/rake appraisal:update
|
|
97
90
|
```
|
|
98
91
|
|
|
92
|
+
If you need to reset all gemfiles/*.gemfile.lock files:
|
|
93
|
+
|
|
94
|
+
```console
|
|
95
|
+
bin/rake appraisal:reset
|
|
96
|
+
```
|
|
97
|
+
|
|
99
98
|
When adding an appraisal to CI, check the [runner tool cache][🏃♂️runner-tool-cache] to see which runner to use.
|
|
100
99
|
|
|
101
100
|
## The Reek List
|
|
@@ -118,10 +117,8 @@ bundle exec rake test
|
|
|
118
117
|
|
|
119
118
|
### Spec organization (required)
|
|
120
119
|
|
|
121
|
-
- One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/kettle/test/
|
|
122
|
-
- Never add a second spec file for the same class/module. Examples of disallowed names: `*_more_spec.rb`, `*_extra_spec.rb`, `*_status_spec.rb`, or any other suffix that still targets the same class. If you find yourself wanting a second file, merge those examples into the canonical spec file for that class/module.
|
|
120
|
+
- One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/kettle/test/my_class.rb` -> `spec/kettle/test/my_class_spec.rb`.
|
|
123
121
|
- Exception: Integration specs that intentionally span multiple classes. Place these under `spec/integration/` (or a clearly named integration folder), and do not directly mirror a single class. Name them after the scenario, not a class.
|
|
124
|
-
- Migration note: If a duplicate spec file exists, move all examples into the canonical file and delete the duplicate. Do not leave stubs or empty files behind.
|
|
125
122
|
|
|
126
123
|
## Lint It
|
|
127
124
|
|
|
@@ -144,7 +141,7 @@ For more detailed information about using RuboCop in this project, please see th
|
|
|
144
141
|
Never add `# rubocop:disable ...` / `# rubocop:enable ...` comments to code or specs (except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). Instead:
|
|
145
142
|
|
|
146
143
|
- Prefer configuration-based exclusions when a rule should not apply to certain paths or files (e.g., via `.rubocop.yml`).
|
|
147
|
-
- When a violation is temporary and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
|
|
144
|
+
- When a violation is temporary, and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
|
|
148
145
|
- `bundle exec rake rubocop_gradual:autocorrect` (preferred)
|
|
149
146
|
- `bundle exec rake rubocop_gradual:force_update` (only when you cannot fix the violations immediately)
|
|
150
147
|
|
|
@@ -176,9 +173,10 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
|
|
|
176
173
|
|
|
177
174
|
#### Automated process
|
|
178
175
|
|
|
179
|
-
1. Update version.rb to
|
|
176
|
+
1. Update version.rb to contain the correct version-to-be-released.
|
|
180
177
|
2. Run `bundle exec kettle-changelog`.
|
|
181
178
|
3. Run `bundle exec kettle-release`.
|
|
179
|
+
4. Stay awake and monitor the release process for any errors, and answer any prompts.
|
|
182
180
|
|
|
183
181
|
#### Manual process
|
|
184
182
|
|
data/FUNDING.md
CHANGED
|
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
|
|
|
6
6
|
|
|
7
7
|
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
|
|
8
8
|
|
|
9
|
-
[![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS
|
|
9
|
+
[![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
|
|
10
10
|
|
|
11
11
|
[⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
|
|
12
12
|
[⛳liberapay]: https://liberapay.com/pboling/donate
|
|
@@ -31,11 +31,11 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
|
|
|
31
31
|
|
|
32
32
|
<!-- RELEASE-NOTES-FOOTER-END -->
|
|
33
33
|
|
|
34
|
-
# 🤑
|
|
34
|
+
# 🤑 A request for help
|
|
35
35
|
|
|
36
36
|
Maintainers have teeth and need to pay their dentists.
|
|
37
|
-
After getting laid off in an RIF in March and
|
|
38
|
-
I
|
|
37
|
+
After getting laid off in an RIF in March, and encountering difficulty finding a new one,
|
|
38
|
+
I began spending most of my time building open source tools.
|
|
39
39
|
I'm hoping to be able to pay for my kids' health insurance this month,
|
|
40
40
|
so if you value the work I am doing, I need your support.
|
|
41
41
|
Please consider sponsoring me or the project.
|
|
@@ -44,16 +44,13 @@ To join the community or get help 👇️ Join the Discord.
|
|
|
44
44
|
|
|
45
45
|
[![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
|
46
46
|
|
|
47
|
-
To say "thanks
|
|
47
|
+
To say "thanks!" ☝️ Join the Discord or 👇️ send money.
|
|
48
48
|
|
|
49
|
-
[![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay
|
|
49
|
+
[![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
|
|
50
50
|
|
|
51
51
|
# Another Way to Support Open Source Software
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
>—Anne Frank
|
|
55
|
-
|
|
56
|
-
I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈 cats).
|
|
53
|
+
I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈 cats).
|
|
57
54
|
|
|
58
55
|
If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
|
|
59
56
|
|
data/README.md
CHANGED
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
| 📍 NOTE |
|
|
2
|
-
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
-
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
-
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
-
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
-
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
7
|
-
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
8
|
-
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
9
|
-
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
10
|
-
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
11
|
-
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
12
|
-
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
|
-
|
|
14
|
-
[rubygems-org]: https://github.com/rubygems/
|
|
15
|
-
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
16
|
-
[draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
|
|
17
|
-
[ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
|
|
18
|
-
[simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
|
|
19
|
-
[martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
|
|
20
|
-
[draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
|
|
21
|
-
[draper-theft]: https://joel.drapper.me/p/ruby-central/
|
|
22
|
-
[reinteractive]: https://reinteractive.com/ruby-on-rails
|
|
23
|
-
[gem-coop]: https://gem.coop
|
|
24
|
-
[gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
|
|
25
|
-
[martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
|
|
26
|
-
[gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
|
|
27
|
-
[gem-server]: https://github.com/galtzo-floss/gem-server
|
|
28
|
-
[reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
|
|
29
|
-
|
|
30
1
|
[![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-test Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-test-i]][🖼️kettle-test]
|
|
31
2
|
|
|
32
3
|
[🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
|
|
@@ -48,6 +19,13 @@
|
|
|
48
19
|
|
|
49
20
|
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
|
|
50
21
|
|
|
22
|
+
<details>
|
|
23
|
+
<summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
|
|
24
|
+
|
|
25
|
+
I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
|
|
26
|
+
|
|
27
|
+
</details>
|
|
28
|
+
|
|
51
29
|
## 🌻 Synopsis
|
|
52
30
|
|
|
53
31
|
Add to your `spec/spec_helper.rb`:
|
|
@@ -106,7 +84,7 @@ Compatible with MRI Ruby 2.3.0+, and concordant releases of JRuby, and TruffleRu
|
|
|
106
84
|
|
|
107
85
|
### Federated DVCS
|
|
108
86
|
|
|
109
|
-
<details>
|
|
87
|
+
<details markdown="1">
|
|
110
88
|
<summary>Find this repo on federated forges (Coming soon!)</summary>
|
|
111
89
|
|
|
112
90
|
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
|
|
@@ -120,11 +98,11 @@ Compatible with MRI Ruby 2.3.0+, and concordant releases of JRuby, and TruffleRu
|
|
|
120
98
|
|
|
121
99
|
[gh-discussions]: https://github.com/kettle-rb/kettle-test/discussions
|
|
122
100
|
|
|
123
|
-
### Enterprise Support []
|
|
101
|
+
### Enterprise Support [][🏙️entsup-tidelift]
|
|
124
102
|
|
|
125
103
|
Available as part of the Tidelift Subscription.
|
|
126
104
|
|
|
127
|
-
<details>
|
|
105
|
+
<details markdown="1">
|
|
128
106
|
<summary>Need enterprise-level guarantees?</summary>
|
|
129
107
|
|
|
130
108
|
The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
|
|
@@ -159,7 +137,7 @@ gem install kettle-test
|
|
|
159
137
|
|
|
160
138
|
### 🔒 Secure Installation
|
|
161
139
|
|
|
162
|
-
<details>
|
|
140
|
+
<details markdown="1">
|
|
163
141
|
<summary>For Medium or High Security Installations</summary>
|
|
164
142
|
|
|
165
143
|
This gem is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
|
|
@@ -222,8 +200,8 @@ That's it! Additional customizations can be done by setting environment variabl
|
|
|
222
200
|
Below are the environment variables recognized by kettle-test. Unless otherwise specified, set values to the string "true" to enable a boolean feature, or provide the noted type.
|
|
223
201
|
|
|
224
202
|
- DEBUG (String: "true"/"false")
|
|
225
|
-
|
|
226
|
-
|
|
203
|
+
- Overrides default silencing for the entire run; when true, STDOUT/STDERR are not silenced by this library.
|
|
204
|
+
- Default: "false". If KETTLE_TEST_DEBUG is not set, DEBUG is used.
|
|
227
205
|
- GLOBAL_TIME_TRAVEL_TIME (String: Date/Time)
|
|
228
206
|
- Global start time for Timecop across examples when using time travel.
|
|
229
207
|
- Example: "2014-11-15" or "2014-11-15 13:45:00".
|
|
@@ -232,30 +210,30 @@ Below are the environment variables recognized by kettle-test. Unless otherwise
|
|
|
232
210
|
- Alternate way to set a global date used when GLOBAL_TIME_TRAVEL_TIME is not provided.
|
|
233
211
|
- Default: today (Date.today.to_s).
|
|
234
212
|
- KETTLE_TEST_DEBUG (String: "true"/"false")
|
|
235
|
-
|
|
236
|
-
|
|
213
|
+
- Same as DEBUG but namespaced for this gem. Takes precedence over DEBUG.
|
|
214
|
+
- Default: "false".
|
|
237
215
|
- CI (String: "true"/"false")
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
216
|
+
- Signals a CI environment. When true, examples tagged :skip_ci are excluded.
|
|
217
|
+
- Also used as the default for KETTLE_TEST_SILENT when not set.
|
|
218
|
+
- Default: unset/empty → treated as false.
|
|
241
219
|
- KETTLE_TEST_SILENT (String: "true"/"false")
|
|
242
|
-
|
|
243
|
-
|
|
220
|
+
- Controls silencing of STDOUT/STDERR during specs (unless :check_output is used or DEBUG is true).
|
|
221
|
+
- Default: value of CI (true on CI, false locally unless CI=true).
|
|
244
222
|
- KETTLE_TEST_VERBOSE (String: "true"/"false")
|
|
245
|
-
|
|
223
|
+
- Reserved for future verbose logging toggles. Default: "false".
|
|
246
224
|
- KETTLE_TEST_FULL_BACKTRACE (String: "true"/"false")
|
|
247
|
-
|
|
248
|
-
|
|
225
|
+
- When true, enables RSpec full backtraces.
|
|
226
|
+
- Default: "false".
|
|
249
227
|
- KETTLE_TEST_RSPEC_PROFILE_EXAMPLES (Integer as String)
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
228
|
+
- When > 0, RSpec will profile the slowest N examples or example groups.
|
|
229
|
+
- Example: KETTLE_TEST_RSPEC_PROFILE_EXAMPLES=10
|
|
230
|
+
- Default: "0" (disabled).
|
|
253
231
|
- KETTLE_TEST_TM_SEQUENTIAL (String: "true"/"false")
|
|
254
232
|
- Controls Timecop sequential time machine mode for RSpec examples (see below).
|
|
255
233
|
- Default: "true".
|
|
256
234
|
- PARALLEL_TEST_FIRST_IS_1 (String: "true"/"false") and TEST_ENV_NUMBER (String)
|
|
257
|
-
|
|
258
|
-
|
|
235
|
+
- Used to detect parallel test runs via Kettle::Test.is_parallel_test?. Not generally required to set manually.
|
|
236
|
+
- Default: unset (treated as non-parallel unless provided by your parallel test runner).
|
|
259
237
|
|
|
260
238
|
### TimeCop-RSpec
|
|
261
239
|
|
|
@@ -299,6 +277,7 @@ except that it will sometimes resume time travel.
|
|
|
299
277
|
|
|
300
278
|
Global travel will always resume from when the previous global traveled
|
|
301
279
|
example ended. E.g.
|
|
280
|
+
|
|
302
281
|
```ruby
|
|
303
282
|
# GLOBAL_TIME_TRAVEL_TIME=2014-11-15 bundle exec rspec some_spec.rb
|
|
304
283
|
|
|
@@ -358,6 +337,7 @@ end
|
|
|
358
337
|
Following spec's local travel will resume when specified time is the same as the
|
|
359
338
|
previous examples specified time. If the time is different, it will
|
|
360
339
|
start from the current examples specified time.
|
|
340
|
+
|
|
361
341
|
```ruby
|
|
362
342
|
describe SomeUnit, travel: Time.new(2014, 11, 15) do
|
|
363
343
|
it "example 1" do
|
|
@@ -381,15 +361,22 @@ Use rspec-stubbed_env to safely set and restore environment variables in specs.
|
|
|
381
361
|
|
|
382
362
|
```ruby
|
|
383
363
|
RSpec.describe("stubbed env") do
|
|
384
|
-
|
|
364
|
+
# kettle-test includes these globally, so they are always available
|
|
365
|
+
# include_context "with stubbed env"
|
|
366
|
+
# include_context "with hidden env"
|
|
385
367
|
|
|
386
368
|
before do
|
|
387
369
|
stub_env("FOO" => "is bar")
|
|
370
|
+
hide_env("PATH")
|
|
388
371
|
end
|
|
389
372
|
|
|
390
373
|
it "uses the stubbed value" do
|
|
391
374
|
expect(ENV["FOO"]).to(eq("is bar"))
|
|
392
375
|
end
|
|
376
|
+
|
|
377
|
+
it "has no path" do
|
|
378
|
+
expect(ENV["PATH"]).to(be_nil)
|
|
379
|
+
end
|
|
393
380
|
end
|
|
394
381
|
```
|
|
395
382
|
|
|
@@ -465,7 +452,7 @@ and [Tidelift][🏙️entsup-tidelift].
|
|
|
465
452
|
|
|
466
453
|
### Open Collective for Individuals
|
|
467
454
|
|
|
468
|
-
Support us with a monthly donation and help us continue our activities. [[Become a backer]
|
|
455
|
+
Support us with a monthly donation and help us continue our activities. [[Become a backer][🖇osc-backers]]
|
|
469
456
|
|
|
470
457
|
NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
|
|
471
458
|
|
|
@@ -475,7 +462,7 @@ No backers yet. Be the first!
|
|
|
475
462
|
|
|
476
463
|
### Open Collective for Organizations
|
|
477
464
|
|
|
478
|
-
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]
|
|
465
|
+
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor][🖇osc-sponsors]]
|
|
479
466
|
|
|
480
467
|
NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
|
|
481
468
|
|
|
@@ -487,10 +474,7 @@ No sponsors yet. Be the first!
|
|
|
487
474
|
|
|
488
475
|
### Another way to support open-source
|
|
489
476
|
|
|
490
|
-
|
|
491
|
-
>—Anne Frank
|
|
492
|
-
|
|
493
|
-
I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈 cats).
|
|
477
|
+
I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈 cats).
|
|
494
478
|
|
|
495
479
|
If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
|
|
496
480
|
|
|
@@ -498,7 +482,7 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
|
|
|
498
482
|
|
|
499
483
|
**[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
|
|
500
484
|
|
|
501
|
-
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS
|
|
485
|
+
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
|
|
502
486
|
|
|
503
487
|
## 🔐 Security
|
|
504
488
|
|
|
@@ -574,12 +558,11 @@ For example:
|
|
|
574
558
|
spec.add_dependency("kettle-test", "~> 1.0")
|
|
575
559
|
```
|
|
576
560
|
|
|
577
|
-
<details>
|
|
561
|
+
<details markdown="1">
|
|
578
562
|
<summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
|
|
579
563
|
|
|
580
564
|
SemVer should, IMO, but doesn't explicitly, say that dropping support for specific Platforms
|
|
581
|
-
is a *breaking change* to an API.
|
|
582
|
-
It is obvious to many, but not all, and since the spec is silent, the bike shedding is endless.
|
|
565
|
+
is a *breaking change* to an API, and for that reason the bike shedding is endless.
|
|
583
566
|
|
|
584
567
|
To get a better understanding of how SemVer is intended to work over a project's lifetime,
|
|
585
568
|
read this article from the creator of SemVer:
|
|
@@ -613,8 +596,8 @@ See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright
|
|
|
613
596
|
## 🤑 A request for help
|
|
614
597
|
|
|
615
598
|
Maintainers have teeth and need to pay their dentists.
|
|
616
|
-
After getting laid off in an RIF in March and
|
|
617
|
-
I
|
|
599
|
+
After getting laid off in an RIF in March, and encountering difficulty finding a new one,
|
|
600
|
+
I began spending most of my time building open source tools.
|
|
618
601
|
I'm hoping to be able to pay for my kids' health insurance this month,
|
|
619
602
|
so if you value the work I am doing, I need your support.
|
|
620
603
|
Please consider sponsoring me or the project.
|
|
@@ -625,7 +608,7 @@ To join the community or get help 👇️ Join the Discord.
|
|
|
625
608
|
|
|
626
609
|
To say "thanks!" ☝️ Join the Discord or 👇️ send money.
|
|
627
610
|
|
|
628
|
-
[![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay
|
|
611
|
+
[![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
|
|
629
612
|
|
|
630
613
|
### Please give the project a star ⭐ ♥.
|
|
631
614
|
|
|
@@ -666,7 +649,6 @@ Thanks for RTFM. ☺️
|
|
|
666
649
|
[✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
|
|
667
650
|
[✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
|
|
668
651
|
[✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
|
|
669
|
-
|
|
670
652
|
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
671
653
|
[⛳️gem-namespace]: https://github.com/kettle-rb/kettle-test
|
|
672
654
|
[⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Test-3C2D2D.svg?style=square&logo=ruby&logoColor=white
|
|
@@ -810,10 +792,10 @@ Thanks for RTFM. ☺️
|
|
|
810
792
|
[📌changelog]: CHANGELOG.md
|
|
811
793
|
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
|
812
794
|
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
|
|
813
|
-
[📌gitmoji]:https://gitmoji.dev
|
|
814
|
-
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
795
|
+
[📌gitmoji]: https://gitmoji.dev
|
|
796
|
+
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
815
797
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
816
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
798
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.086-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
817
799
|
[🔐security]: SECURITY.md
|
|
818
800
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
819
801
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -7,6 +7,10 @@ RSpec.configure do |config|
|
|
|
7
7
|
example.run
|
|
8
8
|
# Make tests run silently, with shunted STDOUT & STDERR, if ENV var KETTLE_TEST_SILENT == "true"
|
|
9
9
|
else
|
|
10
|
+
# silence_all only silences STDOUT
|
|
11
|
+
# Alternatives:
|
|
12
|
+
# quietly also silences STDERR
|
|
13
|
+
# silence_stderr only silences STDERR
|
|
10
14
|
silence_all(Kettle::Test::SILENT) do
|
|
11
15
|
example.run
|
|
12
16
|
end
|
data/lib/kettle/test/internal.rb
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
# config/int and its subfolders.
|
|
5
5
|
# Files in config/ext may depend on this library's internals.
|
|
6
6
|
require_relative "config/int/rspec_block_is_expected"
|
|
7
|
+
require_relative "config/int/rspec_pending_for"
|
|
7
8
|
require_relative "config/int/rspec/rspec_core"
|
|
8
9
|
require_relative "config/int/rspec/silent_stream"
|
|
9
10
|
|
data/lib/kettle/test/version.rb
CHANGED
data/lib/kettle/test.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-test
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -219,14 +219,14 @@ dependencies:
|
|
|
219
219
|
requirements:
|
|
220
220
|
- - "~>"
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
|
-
version:
|
|
222
|
+
version: 1.2.4
|
|
223
223
|
type: :development
|
|
224
224
|
prerelease: false
|
|
225
225
|
version_requirements: !ruby/object:Gem::Requirement
|
|
226
226
|
requirements:
|
|
227
227
|
- - "~>"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version:
|
|
229
|
+
version: 1.2.4
|
|
230
230
|
- !ruby/object:Gem::Dependency
|
|
231
231
|
name: bundler-audit
|
|
232
232
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -343,6 +343,26 @@ dependencies:
|
|
|
343
343
|
- - ">="
|
|
344
344
|
- !ruby/object:Gem::Version
|
|
345
345
|
version: 1.0.3
|
|
346
|
+
- !ruby/object:Gem::Dependency
|
|
347
|
+
name: kettle-test
|
|
348
|
+
requirement: !ruby/object:Gem::Requirement
|
|
349
|
+
requirements:
|
|
350
|
+
- - "~>"
|
|
351
|
+
- !ruby/object:Gem::Version
|
|
352
|
+
version: '1.0'
|
|
353
|
+
- - ">="
|
|
354
|
+
- !ruby/object:Gem::Version
|
|
355
|
+
version: 1.0.6
|
|
356
|
+
type: :development
|
|
357
|
+
prerelease: false
|
|
358
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
359
|
+
requirements:
|
|
360
|
+
- - "~>"
|
|
361
|
+
- !ruby/object:Gem::Version
|
|
362
|
+
version: '1.0'
|
|
363
|
+
- - ">="
|
|
364
|
+
- !ruby/object:Gem::Version
|
|
365
|
+
version: 1.0.6
|
|
346
366
|
description: "\U0001F372 Kettle::Test is a meta tool from kettle-rb to streamline
|
|
347
367
|
testing. Acts as a shim dependency, pulling in many other dependencies, to give
|
|
348
368
|
you OOTB productivity with a RubyGem, or Ruby app project. Configures RSpec w/ syntactic
|
|
@@ -398,10 +418,10 @@ licenses:
|
|
|
398
418
|
- MIT
|
|
399
419
|
metadata:
|
|
400
420
|
homepage_uri: https://kettle-test.galtzo.com/
|
|
401
|
-
source_code_uri: https://github.com/kettle-rb/kettle-test/tree/v1.0.
|
|
402
|
-
changelog_uri: https://github.com/kettle-rb/kettle-test/blob/v1.0.
|
|
421
|
+
source_code_uri: https://github.com/kettle-rb/kettle-test/tree/v1.0.8
|
|
422
|
+
changelog_uri: https://github.com/kettle-rb/kettle-test/blob/v1.0.8/CHANGELOG.md
|
|
403
423
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-test/issues
|
|
404
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-test/1.0.
|
|
424
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-test/1.0.8
|
|
405
425
|
funding_uri: https://github.com/sponsors/pboling
|
|
406
426
|
wiki_uri: https://github.com/kettle-rb/kettle-test/wiki
|
|
407
427
|
news_uri: https://www.railsbling.com/tags/kettle-test
|
|
@@ -430,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
430
450
|
- !ruby/object:Gem::Version
|
|
431
451
|
version: '0'
|
|
432
452
|
requirements: []
|
|
433
|
-
rubygems_version:
|
|
453
|
+
rubygems_version: 4.0.5
|
|
434
454
|
specification_version: 4
|
|
435
455
|
summary: "\U0001F372 A kettle-rb meta tool to streamline testing"
|
|
436
456
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|