couch_potato-rspec 4.2.0 → 4.4.0
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
- data/lib/couch_potato/rspec/stub_db.rb +30 -8
- metadata +3 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fa56480a95f50cbb7d4f9e4a2c5a16da89f17f696a6a06ffa65d45233e1c896d
|
|
4
|
+
data.tar.gz: f2583c19f0ebd21727517836353c5b28ec5b929220250880563a520299c57aac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5bd117d88eae328561a20e843e19a78b0163c7b8c1e1ba4f6665944ab2422571fabc1500faa678542637a83e8e7b64b6b94ba63d4e3cc638f73de12988193662
|
|
7
|
+
data.tar.gz: 4c77c9d423f001f36b3c1e0308b266909d033a1a5b073738f55f453cb1f9edd966414cd7a79c92407ce9f8f1ef898f85a95440361fc3f34269b873db44fc4a67
|
|
@@ -20,28 +20,50 @@ module CouchPotato::RSpec
|
|
|
20
20
|
self
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
def and_return(
|
|
23
|
+
def and_return(*return_values)
|
|
24
24
|
view_stub = double("#{@clazz}.#{@view}(#{@args.try(:join, ', ')}) view")
|
|
25
25
|
stub = allow(@clazz).to receive(@view)
|
|
26
26
|
stub.with(*@args) if @args
|
|
27
27
|
stub.and_return(view_stub)
|
|
28
|
-
allow(@db).to receive(:view).with(view_stub).and_return(return_value)
|
|
29
|
-
return unless return_value.respond_to?(:first)
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
view_return_values = return_values.map do |return_value|
|
|
30
|
+
if flex_view? && return_value.is_a?(Array)
|
|
31
|
+
stub_flex_results(return_value)
|
|
32
|
+
else
|
|
33
|
+
return_value
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
allow(@db).to receive(:view).with(view_stub).and_return(*view_return_values)
|
|
37
|
+
return unless return_values.all? { |v| v.respond_to?(:first) }
|
|
38
|
+
|
|
39
|
+
allow(@db).to receive(:first).with(view_stub).and_return(*return_values.map(&:first))
|
|
40
|
+
remaining_for_batches = return_values.dup
|
|
32
41
|
allow(@db)
|
|
33
42
|
.to receive(:view_in_batches) do |_view, batch_size: CouchPotato::Database.default_batch_size, &block|
|
|
43
|
+
return_value = remaining_for_batches.size > 1 ? remaining_for_batches.shift : remaining_for_batches.first
|
|
34
44
|
batches = return_value.in_groups_of(batch_size, false)
|
|
35
45
|
batches.each(&block)
|
|
36
46
|
end
|
|
37
47
|
.with(view_stub, any_args)
|
|
38
48
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
remaining_for_first = return_values.dup
|
|
50
|
+
allow(@db).to receive(:first!).with(view_stub) do
|
|
51
|
+
return_value = remaining_for_first.size > 1 ? remaining_for_first.shift : remaining_for_first.first
|
|
52
|
+
raise CouchPotato::NotFound unless return_value.first
|
|
53
|
+
|
|
54
|
+
return_value.first
|
|
43
55
|
end
|
|
44
56
|
end
|
|
57
|
+
|
|
58
|
+
private
|
|
59
|
+
|
|
60
|
+
def flex_view?
|
|
61
|
+
@clazz.execute_view(@view.to_s, {}).is_a?(CouchPotato::View::FlexViewSpec)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def stub_flex_results(docs)
|
|
65
|
+
instance_double(CouchPotato::View::FlexViewSpec::Results, docs:)
|
|
66
|
+
end
|
|
45
67
|
end
|
|
46
68
|
|
|
47
69
|
def stub_view(clazz, view, &block)
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: couch_potato-rspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Lang
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rspec
|
|
@@ -68,7 +67,6 @@ files:
|
|
|
68
67
|
homepage: http://github.com/langalex/couch_potato
|
|
69
68
|
licenses: []
|
|
70
69
|
metadata: {}
|
|
71
|
-
post_install_message:
|
|
72
70
|
rdoc_options: []
|
|
73
71
|
require_paths:
|
|
74
72
|
- lib
|
|
@@ -83,8 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
83
81
|
- !ruby/object:Gem::Version
|
|
84
82
|
version: '0'
|
|
85
83
|
requirements: []
|
|
86
|
-
rubygems_version: 3.
|
|
87
|
-
signing_key:
|
|
84
|
+
rubygems_version: 3.6.9
|
|
88
85
|
specification_version: 4
|
|
89
86
|
summary: RSpec matchers for Couch Potato
|
|
90
87
|
test_files:
|