rails_mocks 0.0.3 → 0.0.7

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: a4371d59c15e78aa06d592cb0819115f29e771f2e3b726b76c954aea6d0d5c05
4
- data.tar.gz: 8b297f71b3e94062a713a105b8a383ae0f3728d3b33383d17529f6b9e001a286
3
+ metadata.gz: 74d4545a702113dcb0ca1b1e8389e09ed9ed796a4bb23615388813df15d64fee
4
+ data.tar.gz: edc3684ec1cee8ea8dd3a7d32c2dfd7a2b537d8efacf57efd2bcd9ee6a50049a
5
5
  SHA512:
6
- metadata.gz: 32ebe5518215d2dd4e516162ebafc9b2dc1865910eee37f93e8f64918e85d0c0571536e7af995dd7cb939d6a8793802ed8ae6b763d647a52128468be467e0507
7
- data.tar.gz: abe002326c17f96a8b7b3c0e281e7371ee44d067ecbfca3fcb6c10d5d06547fb0d0693dfa6d87016c10fc34c653499c85133b18a2c7da9ceffb4865c5266c7d5
6
+ metadata.gz: 9a89c706000adf630bd5b8f9e09ace7f2c2db2ad7cd3538e5056d56bb67aa62d043e93e71262325de16980fe1c97df51e453b586519d77811754f45fac63a233
7
+ data.tar.gz: 791c5cfd33a96aca4a0025824c482f178218791f4647c743e1c35a5356ab4c9bf2e91a0f74da473d1e61188231b48da3a39e4f2f9de28d6d7a81960da1ac6207
data/README.md CHANGED
@@ -19,6 +19,7 @@ What we can execute before make request on the rails side:
19
19
  # Instead of User we can use any rails constant
20
20
  # It can be name of service, model, controller, etc
21
21
  allow(User).to receive(:name)
22
+ allow_any_instance_of(User).to receive(:email).and_return("user@email.com")
22
23
  allow(Book).to receive(:title).and_return("The Book")
23
24
  allow(OrderService).to receive(:new).with(sum: 543).and_return(double(total: 543, id: 1))
24
25
  allow(SumService).to receive(:new).with(double(a: 1, b: 5, c: 4)).and_return(double(sum: 10))
@@ -34,6 +35,12 @@ req.headers["RAILS_MOCKS"] = JSON.stringify([
34
35
  allow: "User",
35
36
  receive: "name"
36
37
  },
38
+
39
+ {
40
+ allow_any_instance_of: "User",
41
+ receive: "name",
42
+ and_return: { body: "user@email.com" }
43
+ },
37
44
 
38
45
  {
39
46
  allow: "Book",
@@ -3,6 +3,7 @@
3
3
  module RailsMocks
4
4
  class Middleware
5
5
  include RSpec::Core::Hooks
6
+ include ProtoPharm::RSpec::DSL
6
7
 
7
8
  alias :let :define_singleton_method
8
9
  def metadata; end
@@ -19,6 +20,7 @@ module RailsMocks
19
20
 
20
21
  RSpec::Mocks.with_temporary_scope do
21
22
  RSpec::Mocks::Syntax.enable_expect(self.class)
23
+ self.instance_variable_set(:@hooks, nil)
22
24
 
23
25
  header_data.run_shared_contexts(self)
24
26
  header_data.run_stubs(self)
@@ -9,7 +9,11 @@ module RailsMocks
9
9
  end
10
10
 
11
11
  def execute(scope)
12
- scope.allow(allow).to(receiver)
12
+ if stub[:allow]
13
+ scope.allow(allow).to(receiver)
14
+ elsif stub[:allow_any_instance_of]
15
+ scope.allow_any_instance_of(allow_any_instance_of).to(receiver)
16
+ end
13
17
  end
14
18
 
15
19
  private
@@ -20,6 +24,10 @@ module RailsMocks
20
24
  stub[:allow].constantize
21
25
  end
22
26
 
27
+ def allow_any_instance_of
28
+ stub[:allow_any_instance_of].constantize
29
+ end
30
+
23
31
  def receiver
24
32
  receiver = receive(_receive)
25
33
  receiver.with(_with) if _with
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsMocks
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.7"
5
5
  end
data/lib/rails_mocks.rb CHANGED
@@ -2,4 +2,5 @@ require 'rails_mocks/header_data'
2
2
  require 'rails_mocks/stub'
3
3
  require 'rails_mocks/shared_context'
4
4
  require 'rails_mocks/middleware'
5
- require 'rails_mocks/rails'
5
+ require 'rails_mocks/rails'
6
+ require 'proto_pharm/rspec'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_mocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Kachan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-13 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,28 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.9.1
33
+ version: '3.11'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.9.1
40
+ version: '3.11'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.9.0
47
+ version: '3.11'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.9.0
54
+ version: '3.11'
55
+ - !ruby/object:Gem::Dependency
56
+ name: proto_pharm
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.7.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.7.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry-byebug
57
71
  requirement: !ruby/object:Gem::Requirement