rspec-parameterized 0.5.0 → 0.5.1

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
2
  SHA256:
3
- metadata.gz: 13272c9240c96a67c05aac16ced725a1ca74f7983a7b4efdda6ba64d377fddaf
4
- data.tar.gz: 5a7c41cb7738620b94d789b4db10f8954e139886a2c3c3ea683d807d68d1b89f
3
+ metadata.gz: 59435a789f542a5f80075f3dead8b2ffec470174a91b134b8a6c8cec3ae5bdc2
4
+ data.tar.gz: 5f1282e9687857cad7d18afb679779eb44c06aefe662cb743000082df4a4dece
5
5
  SHA512:
6
- metadata.gz: a3b193a8ae72948274d5f2e3723d99ca84c75150ffb0ebce618afcab90f04159ea995c7331a528c77764c9844bbec0a5c4d0c1a507c7d1b220359fd62e6e6877
7
- data.tar.gz: 22bedbee2bbddbf8a5874b591ca0d66ad05671caeb9df8af8a7a2769fe019cee1b188a42d2af7ca64d60ff03815276f74e0fde9237657e7cc8fe27aac0393d8c
6
+ metadata.gz: 4c719dc2e53f0d0070b76169115efa6e40b09b927f1440acd89a3cf7c7e97e7ac7f71c2dd7bbbbe139712ee4dcb0145d7d1b09475bf1103c653ba84246be2944
7
+ data.tar.gz: 181acdafb5baeec82d9e90dd3a29254f523b8432d850c6946b42d24532dc29bb80777af4a360019129062404da0685152b0841f6cc8508b382eab6583fd8d9a0
@@ -0,0 +1,26 @@
1
+ name: RSpec
2
+
3
+ on:
4
+ push:
5
+ branches: [ $default-branch ]
6
+ pull_request:
7
+
8
+ jobs:
9
+ test:
10
+
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version: ['2.6', '2.7', '3.0', '3.1']
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Set up Ruby
19
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
20
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
25
+ - name: Run tests
26
+ run: bundle exec rake
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  # Change Log
2
2
  ## Unreleased
3
- [Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.4.2...master)
3
+ [Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.5.1...master)
4
+
5
+ ## [v0.5.1](https://github.com/tomykaira/rspec-parameterized/tree/v0.5.1) (2022-01-04)
6
+ [Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.5.0...v0.5.1)
7
+
8
+ - Changes to apply method calls recursively when parameter is Array or Hash.
9
+ - https://github.com/tomykaira/rspec-parameterized/pull/75
10
+
11
+ ## [v0.5.0](https://github.com/tomykaira/rspec-parameterized/tree/v0.5.0) (2021-06-29)
12
+ [Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.4.2...v0.5.0)
13
+
14
+ - Support new parameter type: ref and lazy
15
+ - https://github.com/tomykaira/rspec-parameterized/pull/62
16
+ - https://github.com/tomykaira/rspec-parameterized/pull/65
4
17
 
5
18
  ## [v0.4.2](https://github.com/tomykaira/rspec-parameterized/tree/v0.4.2) (2019-04-26)
6
19
  [Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.4.1...v0.4.2)
@@ -163,4 +176,4 @@
163
176
  ## [v0.0.1](https://github.com/tomykaira/rspec-parameterized/tree/v0.0.1) (2012-05-20)
164
177
 
165
178
 
166
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
179
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # RSpec::Parameterized [![Gem Version](https://badge.fury.io/rb/rspec-parameterized.svg)](https://badge.fury.io/rb/rspec-parameterized) [![Build Status](https://travis-ci.org/tomykaira/rspec-parameterized.svg)](https://travis-ci.org/tomykaira/rspec-parameterized)
1
+ # RSpec::Parameterized [![Gem Version](https://badge.fury.io/rb/rspec-parameterized.svg)](https://badge.fury.io/rb/rspec-parameterized) ![rspec](https://github.com/tomykaira/rspec-parameterized/actions/workflows/rspec.yml/badge.svg)
2
2
 
3
3
  Support simple parameterized test syntax in rspec.
4
4
 
@@ -177,6 +177,10 @@ end
177
177
 
178
178
  I was inspired by [udzura's mock](https://gist.github.com/1881139).
179
179
 
180
+ ## Support Versions
181
+
182
+ Ruby-2.6.0 or later.
183
+
180
184
  ## Installation
181
185
 
182
186
  Add this line to your application's Gemfile:
@@ -0,0 +1,19 @@
1
+ module RSpec
2
+ module Parameterized
3
+ module ExampleHelperMethods
4
+ def recursive_apply(val)
5
+ return val.apply(self) if HelperMethods.applicable?(val)
6
+
7
+ if val.is_a?(Array)
8
+ return val.map { |child_val| recursive_apply(child_val) }
9
+ end
10
+
11
+ if val.is_a?(Hash)
12
+ return val.map { |key, value| [recursive_apply(key), recursive_apply(value)] }.to_h
13
+ end
14
+
15
+ val
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module Parameterized
3
- VERSION = "0.5.0"
3
+ VERSION = "0.5.1"
4
4
  end
5
5
  end
@@ -3,6 +3,7 @@ require 'parser'
3
3
  require 'unparser'
4
4
  require 'proc_to_ast'
5
5
  require 'rspec/parameterized/helper_methods'
6
+ require 'rspec/parameterized/example_helper_methods'
6
7
 
7
8
  module RSpec
8
9
  module Parameterized
@@ -113,12 +114,10 @@ module RSpec
113
114
  pairs = [parameter.arg_names, param_set].transpose.to_h
114
115
  pretty_params = pairs.has_key?(:case_name) ? pairs[:case_name] : pairs.map {|name, val| "#{name}: #{params_inspect(val)}"}.join(", ")
115
116
  describe(pretty_params, *args) do
117
+ include ExampleHelperMethods
118
+
116
119
  pairs.each do |name, val|
117
- if HelperMethods.applicable? val
118
- let(name) { val.apply(self) }
119
- else
120
- let(name) { val }
121
- end
120
+ let(name) { recursive_apply(val) }
122
121
  end
123
122
 
124
123
  singleton_class.module_eval do
@@ -192,46 +192,96 @@ describe RSpec::Parameterized do
192
192
  end
193
193
 
194
194
  describe "ref" do
195
- let(:foo) { 1 }
195
+ context 'simple usecase' do
196
+ let(:foo) { 1 }
196
197
 
197
- where(:value, :answer) do
198
- [
199
- [ref(:foo), 1],
200
- ]
198
+ where(:value, :answer) do
199
+ [
200
+ [ref(:foo), 1],
201
+ ]
202
+ end
203
+
204
+ with_them do
205
+ it "let variable in same example group can be used" do
206
+ expect(value).to eq answer
207
+ end
208
+
209
+ context "override let varibale" do
210
+ let(:foo) { 3 }
211
+
212
+ it "can override let variable" do
213
+ expect(value).to eq 3
214
+ end
215
+ end
216
+ end
201
217
  end
202
218
 
203
- with_them do
204
- it "let variable in same example group can be used" do
205
- expect(value).to eq answer
219
+ context "recursive usecase" do
220
+ let(:foo) { 1 }
221
+
222
+ where(:value, :answer) do
223
+ [
224
+ [[ref(:foo), 2], [1, 2]],
225
+ ]
206
226
  end
207
227
 
208
- context "override let varibale" do
209
- let(:foo) { 3 }
228
+ with_them do
229
+ it "let variable in same example group can be used" do
230
+ expect(value).to eq answer
231
+ end
232
+
233
+ context "override let varibale" do
234
+ let(:foo) { 3 }
210
235
 
211
- it "can override let variable" do
212
- expect(value).to eq 3
236
+ it "can override let variable" do
237
+ expect(value).to eq [3, 2]
238
+ end
213
239
  end
214
240
  end
215
241
  end
216
242
  end
217
243
 
218
244
  describe "lazy" do
219
- let(:one) { 1 }
220
- let(:four) { 4 }
245
+ context "simple usecase" do
246
+ let(:one) { 1 }
247
+ let(:four) { 4 }
221
248
 
222
- where(:a, :b, :answer) do
223
- [
224
- [ref(:one), ref(:four), lazy { two + three }],
225
- ]
249
+ where(:a, :b, :answer) do
250
+ [
251
+ [ref(:one), ref(:four), lazy { two + three }],
252
+ ]
253
+ end
254
+
255
+ with_them do
256
+ context "define two and three after where block" do
257
+ let(:two) { 2 }
258
+ let(:three) { 3 }
259
+
260
+ it "should do additions" do
261
+ expect(a + b).to eq answer
262
+ end
263
+ end
264
+ end
226
265
  end
227
266
 
228
- with_them do
229
- context "define two and three after where block" do
230
- let(:two) { 2 }
231
- let(:three) { 3 }
267
+ context 'recursive usecase' do
268
+ let(:one) { 1 }
269
+ let(:four) { 4 }
232
270
 
233
- it "should do additions" do
234
- expect(a + b).to eq answer
271
+ where(:a, :b, :answer) do
272
+ [
273
+ [ref(:one), ref(:four), { result: lazy { two + three } }],
274
+ ]
275
+ end
276
+
277
+ with_them do
278
+ context "define two and three after where block" do
279
+ let(:two) { 2 }
280
+ let(:three) { 3 }
281
+
282
+ it "should do additions" do
283
+ expect(a + b).to eq answer[:result]
284
+ end
235
285
  end
236
286
  end
237
287
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-parameterized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tomykaira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-29 00:00:00.000000000 Z
11
+ date: 2022-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -107,9 +107,9 @@ executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files: []
109
109
  files:
110
+ - ".github/workflows/rspec.yml"
110
111
  - ".gitignore"
111
112
  - ".rspec"
112
- - ".travis.yml"
113
113
  - CHANGELOG.md
114
114
  - Gemfile
115
115
  - LICENSE
@@ -120,6 +120,7 @@ files:
120
120
  - lib/rspec-parameterized.rb
121
121
  - lib/rspec/parameterized.rb
122
122
  - lib/rspec/parameterized/arg.rb
123
+ - lib/rspec/parameterized/example_helper_methods.rb
123
124
  - lib/rspec/parameterized/helper_methods.rb
124
125
  - lib/rspec/parameterized/lazy_arg.rb
125
126
  - lib/rspec/parameterized/ref_arg.rb
@@ -147,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
148
  - !ruby/object:Gem::Version
148
149
  version: '0'
149
150
  requirements: []
150
- rubygems_version: 3.2.3
151
+ rubygems_version: 3.2.22
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: RSpec::Parameterized supports simple parameterized test syntax in rspec.
data/.travis.yml DELETED
@@ -1,21 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.4
5
- - 2.5
6
- - 2.6
7
- - 2.7
8
- - ruby-head
9
- - jruby-9.2.8.0
10
-
11
- gemfile:
12
- - gemfiles/rspec3.4.gemfile
13
- - gemfiles/rspec-head.gemfile
14
-
15
- before_install:
16
- - travis_retry gem update --system || travis_retry gem update --system 2.7.8
17
- - travis_retry gem install bundler --no-document || travis_retry gem install bundler --no-document -v 1.17.3
18
-
19
- matrix:
20
- allow_failures:
21
- - rvm: ruby-head