rspec-activemodel-mocks 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/rspec/active_model/mocks/mocks.rb +4 -1
- data/lib/rspec/active_model/mocks/version.rb +1 -1
- data/spec/rspec/active_model/mocks/mock_model_spec.rb +13 -0
- data/spec/rspec/active_model/mocks/stub_model_spec.rb +13 -0
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59ec608e6f9b0a1ee5477ed48c3d2750ad76600d4bae9f79d25c9a4780da6024
|
4
|
+
data.tar.gz: 727ef3cc5f9cc8944e15ef79d9f43639b9e059ba4ac6c8a8eb6402722a5a4710
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 545c2feb61438959b3c24a5197537a88951332d4c2e197a9ae0a95028aa014940c84a132d0a2382670d341ce57084736c42bb096859b8a8f70750a3d489f5c4d
|
7
|
+
data.tar.gz: 56ee248bda2bc142e0fb391f3f21130a1632c63047896d3377243885ea97689c8b9ec612319cf087015678078297f5973aef07642d90d87728e692216ef5124d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -94,6 +94,8 @@ module RSpec::ActiveModel::Mocks
|
|
94
94
|
# * A String representing a Class that extends ActiveModel::Naming
|
95
95
|
# * A Class that extends ActiveModel::Naming
|
96
96
|
def mock_model(string_or_model_class, stubs={})
|
97
|
+
@__rspec_active_model_mocks ||= Hash.new { |h, k| h[k] = [] }
|
98
|
+
|
97
99
|
if String === string_or_model_class
|
98
100
|
if Object.const_defined?(string_or_model_class)
|
99
101
|
model_class = Object.const_get(string_or_model_class)
|
@@ -137,9 +139,10 @@ It received #{model_class.inspect}
|
|
137
139
|
double("#{model_class.name}_#{stubs[:id]}", stubs).tap do |m|
|
138
140
|
if model_class.method(:===).owner == Module && !stubs.key?(:===)
|
139
141
|
allow(model_class).to receive(:===).and_wrap_original do |original, other|
|
140
|
-
|
142
|
+
@__rspec_active_model_mocks[model_class].include?(other) || original.call(other)
|
141
143
|
end
|
142
144
|
end
|
145
|
+
@__rspec_active_model_mocks[model_class] << m
|
143
146
|
msingleton = class << m; self; end
|
144
147
|
msingleton.class_eval do
|
145
148
|
include ActiveModelInstanceMethods
|
@@ -209,6 +209,19 @@ describe "mock_model(RealModel)" do
|
|
209
209
|
end
|
210
210
|
# rubocop:enable Lint/LiteralAsCondition
|
211
211
|
end
|
212
|
+
|
213
|
+
it "works for multiple mocks of the same model" do
|
214
|
+
foo = mock_model(MockableModel)
|
215
|
+
bar = mock_model(MockableModel)
|
216
|
+
baz = mock_model(MockableModelNoPrimaryKey)
|
217
|
+
quz = mock_model(MockableModel)
|
218
|
+
|
219
|
+
expect(MockableModel === foo).to be(true)
|
220
|
+
expect(MockableModel === bar).to be(true)
|
221
|
+
expect(MockableModel === baz).to be(false)
|
222
|
+
expect(MockableModelNoPrimaryKey === baz).to be(true)
|
223
|
+
expect(MockableModel === quz).to be(true)
|
224
|
+
end
|
212
225
|
end
|
213
226
|
|
214
227
|
describe "#kind_of?" do
|
@@ -181,5 +181,18 @@ describe "stub_model" do
|
|
181
181
|
end
|
182
182
|
# rubocop:enable Lint/LiteralAsCondition
|
183
183
|
end
|
184
|
+
|
185
|
+
it "works for multiple mocks of the same model" do
|
186
|
+
foo = stub_model(MockableModel)
|
187
|
+
bar = stub_model(MockableModel)
|
188
|
+
baz = stub_model(MockableModelNoPrimaryKey)
|
189
|
+
qux = stub_model(MockableModel)
|
190
|
+
|
191
|
+
expect(MockableModel === foo).to be(true)
|
192
|
+
expect(MockableModel === bar).to be(true)
|
193
|
+
expect(MockableModel === baz).to be(false)
|
194
|
+
expect(MockableModelNoPrimaryKey === baz).to be(true)
|
195
|
+
expect(MockableModel === qux).to be(true)
|
196
|
+
end
|
184
197
|
end
|
185
198
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-activemodel-mocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chelimsky
|
@@ -45,7 +45,7 @@ cert_chain:
|
|
45
45
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
46
46
|
F3MdtaDehhjC
|
47
47
|
-----END CERTIFICATE-----
|
48
|
-
date:
|
48
|
+
date: 2024-10-02 00:00:00.000000000 Z
|
49
49
|
dependencies:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: activemodel
|
@@ -146,10 +146,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
requirements: []
|
149
|
-
rubygems_version: 3.
|
149
|
+
rubygems_version: 3.5.16
|
150
150
|
signing_key:
|
151
151
|
specification_version: 4
|
152
|
-
summary: rspec-activemodel-mocks-1.2.
|
152
|
+
summary: rspec-activemodel-mocks-1.2.1
|
153
153
|
test_files:
|
154
154
|
- features/mocks/mock_model.feature
|
155
155
|
- features/mocks/stub_model.feature
|
metadata.gz.sig
CHANGED
Binary file
|