minitest-vcr 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.
- data/.coveralls.yml +0 -0
- data/Gemfile +2 -0
- data/README.md +19 -11
- data/lib/extensions/string.rb +21 -0
- data/lib/minitest-vcr/spec.rb +3 -17
- data/lib/minitest-vcr/version.rb +1 -1
- data/test/cassettes/MinitestVcr_Spec/a_describe_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml +4 -4
- data/test/cassettes/MinitestVcr_Spec/an_it_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml +4 -4
- data/test/extensions/string_test.rb +18 -0
- data/test/helper.rb +3 -0
- data/test/minitest-vcr/spec_test.rb +2 -2
- metadata +6 -2
data/.coveralls.yml
ADDED
File without changes
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
minitest-vcr
|
2
2
|
============
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
| Project | Gem Release |
|
4
|
+
|------------------------ | ----------------- |
|
5
|
+
| Gem name | minitest-vcr |
|
6
|
+
| License | [MIT](LICENSE.txt) |
|
7
|
+
| Version | [](http://badge.fury.io/rb/minitest-vcr) |
|
8
|
+
| Continuous Integration | [](https://travis-ci.org/mfpiccolo/minitest-vcr)
|
9
|
+
| Test Coverage | [](https://coveralls.io/r/mfpiccolo/minitest-vcr?branch=coveralls)
|
10
|
+
| Grade | [](https://codeclimate.com/github/mfpiccolo/minitest-vcr)
|
11
|
+
| Dependencies | [](https://gemnasium.com/mfpiccolo/minitest-vcr)
|
12
|
+
| Homepage | [http://mfpiccolo.github.io/minitest-vcr][homepage] |
|
13
|
+
| Documentation | [http://rdoc.info/github/mfpiccolo/minitest-vcr/frames][documentation] |
|
14
|
+
| Issues | [https://github.com/mfpiccolo/minitest-vcr/issues][issues] |
|
10
15
|
|
11
16
|
## Description
|
12
17
|
|
13
18
|
Allows VCR to automatically make cassetes with proper file paths using Minitest.
|
14
19
|
|
15
|
-
## Features
|
16
|
-
|
17
20
|
## Examples
|
18
21
|
|
19
22
|
Two main steps:
|
@@ -21,7 +24,7 @@ Two main steps:
|
|
21
24
|
1. Install and require the gem
|
22
25
|
2. Add `MinitestVcr::Spec.configure!` before your tests load
|
23
26
|
|
24
|
-
The setup below will create a
|
27
|
+
The setup below will create a directory structre that looks like this:
|
25
28
|
|
26
29
|
|-- app_name
|
27
30
|
| |-- test/
|
@@ -113,5 +116,10 @@ See [LICENSE.txt](LICENSE.txt) for details.
|
|
113
116
|
4. Push to the branch (`git push origin my-new-feature`)
|
114
117
|
5. Create new Pull Request
|
115
118
|
|
116
|
-
[](http://githalytics.com/mfpiccolo/minitest-vcr)
|
120
|
+
|
121
|
+
[license]: https://github.com/mfpiccolo/minitest-vcr/MIT-LICENSE
|
122
|
+
[homepage]: http://mfpiccolo.github.io/minitest-vcr
|
123
|
+
[documentation]: http://rdoc.info/github/mfpiccolo/minitest-vcr/frames
|
124
|
+
[issues]: https://github.com/mfpiccolo/minitest-vcr/issues
|
117
125
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class String
|
2
|
+
|
3
|
+
def vcr_path(example, spec_name)
|
4
|
+
self.scan(/^(.*?)::[abc]/) do |class_names|
|
5
|
+
class_name = class_names.flatten.first
|
6
|
+
|
7
|
+
if class_name.nil?
|
8
|
+
@path = example.class.name.prep
|
9
|
+
else
|
10
|
+
@path = example.class.name.gsub(class_name, "").prep.unshift(class_name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
@path.push(spec_name).join("/") unless @path.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
def prep
|
18
|
+
split("::").map {|e| e.sub(/[^\w]*$/, "")}.reject(&:empty?) - ["vcr"]
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/lib/minitest-vcr/spec.rb
CHANGED
@@ -1,31 +1,17 @@
|
|
1
1
|
require "vcr"
|
2
2
|
require "minispec-metadata"
|
3
|
+
require "extensions/string"
|
3
4
|
|
4
5
|
module MinitestVcr
|
5
6
|
module Spec
|
6
7
|
|
7
8
|
def self.configure!
|
8
9
|
run_before = lambda do |example|
|
9
|
-
if metadata[:vcr]
|
10
|
-
example.class.name.scan(/^(.*?)::[abc]/) do |name|
|
11
|
-
@class_name = name.first
|
12
|
-
end
|
13
|
-
|
14
|
-
if @class_name.nil?
|
15
|
-
test_info = example.class.name.split("::").map {|e| e.sub(/[^\w]*$/, "")}.reject(&:empty?) - ["vcr"]
|
16
|
-
@class_name = ""
|
17
|
-
else
|
18
|
-
test_info = example.class.name.gsub(@class_name, "").split("::").map {|e| e.sub(/[^\w]*$/, "")}.reject(&:empty?) - ["vcr"]
|
19
|
-
end
|
20
|
-
|
21
|
-
VCR.insert_cassette @class_name + "/" + test_info.join("/") + "/#{spec_name}"
|
22
|
-
end
|
10
|
+
VCR.insert_cassette example.class.name.vcr_path(example, spec_name) if metadata[:vcr]
|
23
11
|
end
|
24
12
|
|
25
13
|
run_after = lambda do |example|
|
26
|
-
if metadata[:vcr]
|
27
|
-
::VCR.eject_cassette
|
28
|
-
end
|
14
|
+
::VCR.eject_cassette if metadata[:vcr]
|
29
15
|
end
|
30
16
|
|
31
17
|
::MiniTest::Spec.before :each, &run_before
|
data/lib/minitest-vcr/version.rb
CHANGED
@@ -25,15 +25,15 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- text/html
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Wed, 15 Jan 2014 16:51:17 GMT
|
29
29
|
Etag:
|
30
30
|
- ! '"359670651"'
|
31
31
|
Expires:
|
32
|
-
-
|
32
|
+
- Wed, 22 Jan 2014 16:51:17 GMT
|
33
33
|
Last-Modified:
|
34
34
|
- Fri, 09 Aug 2013 23:54:35 GMT
|
35
35
|
Server:
|
36
|
-
- ECS (
|
36
|
+
- ECS (sjc/4FCE)
|
37
37
|
X-Cache:
|
38
38
|
- HIT
|
39
39
|
X-Ec-Custom-Error:
|
@@ -60,5 +60,5 @@ http_interactions:
|
|
60
60
|
or asking for permission.</p>\n <p><a href=\"http://www.iana.org/domains/example\">More
|
61
61
|
information...</a></p>\n</div>\n</body>\n</html>\n"
|
62
62
|
http_version:
|
63
|
-
recorded_at:
|
63
|
+
recorded_at: Wed, 15 Jan 2014 16:51:17 GMT
|
64
64
|
recorded_with: VCR 2.8.0
|
@@ -25,15 +25,15 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- text/html
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Wed, 15 Jan 2014 16:51:18 GMT
|
29
29
|
Etag:
|
30
30
|
- ! '"359670651"'
|
31
31
|
Expires:
|
32
|
-
-
|
32
|
+
- Wed, 22 Jan 2014 16:51:18 GMT
|
33
33
|
Last-Modified:
|
34
34
|
- Fri, 09 Aug 2013 23:54:35 GMT
|
35
35
|
Server:
|
36
|
-
- ECS (
|
36
|
+
- ECS (sjc/4FCE)
|
37
37
|
X-Cache:
|
38
38
|
- HIT
|
39
39
|
X-Ec-Custom-Error:
|
@@ -60,5 +60,5 @@ http_interactions:
|
|
60
60
|
or asking for permission.</p>\n <p><a href=\"http://www.iana.org/domains/example\">More
|
61
61
|
information...</a></p>\n</div>\n</body>\n</html>\n"
|
62
62
|
http_version:
|
63
|
-
recorded_at:
|
63
|
+
recorded_at: Wed, 15 Jan 2014 16:51:17 GMT
|
64
64
|
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
MinitestVcr::Spec.configure!
|
4
|
+
|
5
|
+
describe String do
|
6
|
+
|
7
|
+
describe "prep" do
|
8
|
+
it "returns an array of descriptions" do
|
9
|
+
"a describe with metadata::with a nested example group::uses a cassette for any examples"
|
10
|
+
.prep.must_equal([
|
11
|
+
'a describe with metadata',
|
12
|
+
'with a nested example group',
|
13
|
+
'uses a cassette for any examples'
|
14
|
+
])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/test/helper.rb
CHANGED
@@ -41,8 +41,8 @@ describe MinitestVcr::Spec do
|
|
41
41
|
describe "#configure!", :vcr do
|
42
42
|
|
43
43
|
before do
|
44
|
-
::MiniTest::Spec.expects(:before).with(:each)
|
45
|
-
::MiniTest::Spec.expects(:after).with(:each)
|
44
|
+
::MiniTest::Spec.expects(:before).with(:each)
|
45
|
+
::MiniTest::Spec.expects(:after).with(:each)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should call before and after with proper args and block" do
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: minitest-vcr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Mike Piccolo
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-02-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: vcr
|
@@ -258,18 +258,21 @@ executables: []
|
|
258
258
|
extensions: []
|
259
259
|
extra_rdoc_files: []
|
260
260
|
files:
|
261
|
+
- .coveralls.yml
|
261
262
|
- .gitignore
|
262
263
|
- .travis.yml
|
263
264
|
- Gemfile
|
264
265
|
- LICENSE.txt
|
265
266
|
- README.md
|
266
267
|
- Rakefile
|
268
|
+
- lib/extensions/string.rb
|
267
269
|
- lib/minitest-vcr.rb
|
268
270
|
- lib/minitest-vcr/spec.rb
|
269
271
|
- lib/minitest-vcr/version.rb
|
270
272
|
- minitest-vcr.gemspec
|
271
273
|
- test/cassettes/MinitestVcr_Spec/a_describe_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
|
272
274
|
- test/cassettes/MinitestVcr_Spec/an_it_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
|
275
|
+
- test/extensions/string_test.rb
|
273
276
|
- test/helper.rb
|
274
277
|
- test/minitest-vcr/spec_test.rb
|
275
278
|
homepage: ''
|
@@ -300,6 +303,7 @@ summary: Allows VCR to automatically make cassetes with proper file paths with M
|
|
300
303
|
test_files:
|
301
304
|
- test/cassettes/MinitestVcr_Spec/a_describe_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
|
302
305
|
- test/cassettes/MinitestVcr_Spec/an_it_with_metadata/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
|
306
|
+
- test/extensions/string_test.rb
|
303
307
|
- test/helper.rb
|
304
308
|
- test/minitest-vcr/spec_test.rb
|
305
309
|
has_rdoc:
|