couch_potato-rspec 4.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfb9baa1278ce79d353157cf6494ea874279354b8d24f500b958566bfc4a9f59
4
- data.tar.gz: '0596cfd3cfceb218b2a2bcf5cabeee7b5b2bb6959f89416bb61bc5e067e6bc0f'
3
+ metadata.gz: fa56480a95f50cbb7d4f9e4a2c5a16da89f17f696a6a06ffa65d45233e1c896d
4
+ data.tar.gz: f2583c19f0ebd21727517836353c5b28ec5b929220250880563a520299c57aac
5
5
  SHA512:
6
- metadata.gz: 9517337195be2078727cf8f372de1fd5f371793ed137fb08fea26f475b7afcaca7deac3f05f720b3c46b807a40360dc83be49d7f2785e049ad71860839159bb8
7
- data.tar.gz: 5bdaefe1478a853296612ad4d7d7530cb06ba6831109d623b06ea28136a03a21af23942cd5ce3925951d0f991229db329613ffc360b43b5fb185d13c30b8e53f
6
+ metadata.gz: 5bd117d88eae328561a20e843e19a78b0163c7b8c1e1ba4f6665944ab2422571fabc1500faa678542637a83e8e7b64b6b94ba63d4e3cc638f73de12988193662
7
+ data.tar.gz: 4c77c9d423f001f36b3c1e0308b266909d033a1a5b073738f55f453cb1f9edd966414cd7a79c92407ce9f8f1ef898f85a95440361fc3f34269b873db44fc4a67
@@ -20,32 +20,38 @@ module CouchPotato::RSpec
20
20
  self
21
21
  end
22
22
 
23
- def and_return(return_value)
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
28
 
29
- view_return_value = if flex_view? && return_value.is_a?(Array)
30
- stub_flex_results(return_value)
31
- else
32
- return_value
33
- end
34
- allow(@db).to receive(:view).with(view_stub).and_return(view_return_value)
35
- return unless return_value.respond_to?(:first)
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) }
36
38
 
37
- allow(@db).to receive(:first).with(view_stub).and_return(return_value.first)
39
+ allow(@db).to receive(:first).with(view_stub).and_return(*return_values.map(&:first))
40
+ remaining_for_batches = return_values.dup
38
41
  allow(@db)
39
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
40
44
  batches = return_value.in_groups_of(batch_size, false)
41
45
  batches.each(&block)
42
46
  end
43
47
  .with(view_stub, any_args)
44
48
 
45
- if return_value.first
46
- allow(@db).to receive(:first!).with(view_stub).and_return(return_value.first)
47
- else
48
- allow(@db).to receive(:first!).with(view_stub).and_raise(CouchPotato::NotFound)
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
49
55
  end
50
56
  end
51
57
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couch_potato-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Lang