rails_mocks 0.0.3 → 0.0.7

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: 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