rspec-activemodel-mocks 1.0.3 → 1.2.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
- SHA1:
3
- metadata.gz: e4aabaf01fc2ce4d1d63258a97eeae886aed9666
4
- data.tar.gz: 5d6c8954af12f2cc996525f341ecb0ef9bba96a8
2
+ SHA256:
3
+ metadata.gz: 7c03088fe7611777d052655997f79e7394142634a18c47f12ef2b62d21c1225d
4
+ data.tar.gz: 59d467700bd06b7246d40282f73bf9f374574c951455f3400e7ec47e3e0dedc5
5
5
  SHA512:
6
- metadata.gz: c93de78dbdf87d1af66ed2a589fe1ceadb3f960a2aeb9fe54f5c6e011a0337f202d7c352f9eca26c82853cc5099193db10be4fb89cff80fd8cab08ac0dec11b3
7
- data.tar.gz: a307fa11f27e7aa9695aab18356089a8ff9802d69cc6df53a47e32cf3c80f76291e22a6b6041187f610e4343427df0cf948fe9dafaef0ec133e7d8525f9fa68a
6
+ metadata.gz: 19ddf1bdf625c89ae9908c504af7ba69204d9e07dcaffddf7baafc4401fcd5b90a1c0e9b747b63be4bf05e10017976dd63a9c3c435626344469a05542d401282
7
+ data.tar.gz: fddd4cf43f973358d3b04762aaedebcc629a7e714bbcf0e82f13f875e6fb6f5c3eb2bf4b328c7227ea55c1b03e12e047420b92463277e47e5a284f551eabfad6
checksums.yaml.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # RSpec::ActiveModel::Mocks [![Build Status](https://secure.travis-ci.org/rspec/rspec-activemodel-mocks.png?branch=master)](http://travis-ci.org/rspec/rspec-activemodel-mocks)
1
+ # RSpec::ActiveModel::Mocks [![RSpec CI](https://github.com/rspec/rspec-activemodel-mocks/actions/workflows/ci.yml/badge.svg)](https://github.com/rspec/rspec-activemodel-mocks/actions/workflows/ci.yml)
2
2
 
3
3
  RSpec::ActiveModel::Mocks provides tools for testing `ActiveModel` classes.
4
4
 
@@ -14,12 +14,8 @@ And then execute:
14
14
 
15
15
  $ bundle
16
16
 
17
- If you are using [rspec-rails](https://github.com/rspec/rspec-rails) and have
18
- followed the installation instructions there, you're all set to use `stub_model`
19
- and `mock_model`.
20
-
21
- To use `stub_model` and `mock_model` without rspec-rails, require the
22
- following file:
17
+ To finish the installation and start using `stub_model` and `mock_model`, require the
18
+ following file in your `spec_helper.rb` or `rails_helper.rb`.
23
19
 
24
20
  require 'rspec/active_model/mocks'
25
21
 
@@ -1,4 +1,5 @@
1
- Then /^the example(s)? should( all)? pass$/ do |_, _|
2
- step %q{the output should contain "0 failures"}
3
- step %q{the exit status should be 0}
1
+ # frozen_string_literal: true
2
+ Then(/^the example(s)? should( all)? pass$/) do |_, _|
3
+ step 'the output should contain "0 failures"'
4
+ step 'the exit status should be 0'
4
5
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'aruba/cucumber'
2
3
 
3
4
  module ArubaExt
@@ -17,7 +18,7 @@ unless File.directory?('./tmp/sample')
17
18
  end
18
19
 
19
20
  def aruba_path(file_or_dir)
20
- File.expand_path("../../../#{file_or_dir.sub('sample','aruba')}", __FILE__)
21
+ File.expand_path("../../../#{file_or_dir.sub('sample', 'aruba')}", __FILE__)
21
22
  end
22
23
 
23
24
  def sample_path(file_or_dir)
@@ -37,12 +38,12 @@ def copy(file_or_dir)
37
38
  end
38
39
 
39
40
  Before do
40
- steps %Q{
41
+ steps %(
41
42
  Given a directory named "spec"
42
- }
43
+ )
43
44
 
44
45
  Dir['tmp/sample/*'].each do |file_or_dir|
45
- if !(file_or_dir =~ /spec$/)
46
+ if file_or_dir !~ /spec$/
46
47
  write_symlink(file_or_dir)
47
48
  end
48
49
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # Required until https://github.com/rubinius/rubinius/issues/2430 is resolved
2
- ENV['RBXOPT'] = "#{ENV["RBXOPT"]} -Xcompiler.no_rbc"
3
+ ENV['RBXOPT'] = "#{ENV.fetch("RBXOPT", nil)} -Xcompiler.no_rbc"
3
4
 
4
- Around "@unsupported-on-rbx" do |scenario, block|
5
+ Around "@unsupported-on-rbx" do |_scenario, block|
5
6
  block.call unless defined?(Rubinius)
6
7
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'active_support'
2
3
  require 'active_support/core_ext/object/to_param'
3
4
  require 'active_model'
@@ -5,7 +6,6 @@ require 'active_model'
5
6
  module RSpec::ActiveModel::Mocks
6
7
  class IllegalDataAccessException < StandardError; end
7
8
  module Mocks
8
-
9
9
  module ActiveModelInstanceMethods
10
10
  # Stubs `persisted?` to return false and `id` to return nil
11
11
  # @return self
@@ -38,6 +38,11 @@ module RSpec::ActiveModel::Mocks
38
38
  def initialize(association_name)
39
39
  @association_name = association_name
40
40
  end
41
+
42
+ def inversed_from(record)
43
+ self.target = record
44
+ @inversed = !!record
45
+ end
41
46
  end
42
47
 
43
48
  module ActiveRecordInstanceMethods
@@ -69,6 +74,8 @@ module RSpec::ActiveModel::Mocks
69
74
  end
70
75
  end
71
76
 
77
+ # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
78
+
72
79
  # Creates a test double representing `string_or_model_class` with common
73
80
  # ActiveModel methods stubbed out. Additional methods may be easily
74
81
  # stubbed (via add_stubs) if `stubs` is passed. This is most useful for
@@ -86,14 +93,23 @@ module RSpec::ActiveModel::Mocks
86
93
  # * A String representing a Class that does not exist
87
94
  # * A String representing a Class that extends ActiveModel::Naming
88
95
  # * A Class that extends ActiveModel::Naming
89
- def mock_model(string_or_model_class, stubs = {})
96
+ def mock_model(string_or_model_class, stubs={})
90
97
  if String === string_or_model_class
91
98
  if Object.const_defined?(string_or_model_class)
92
99
  model_class = Object.const_get(string_or_model_class)
93
100
  else
94
101
  model_class = Object.const_set(string_or_model_class, Class.new do
102
+ # rubocop:disable Style/SingleLineMethods
95
103
  extend ::ActiveModel::Naming
96
104
  def self.primary_key; :id; end
105
+
106
+ # For detection of being a valid association in 7+
107
+ def self.<(other); other == ActiveRecord::Base; end
108
+ def self._reflect_on_association(_other); nil; end
109
+ def self.composite_primary_key?; false; end
110
+ def self.has_query_constraints?; false; end
111
+ def self.param_delimiter; "-"; end
112
+ # rubocop:enable Style/SingleLineMethods
97
113
  end)
98
114
  end
99
115
  else
@@ -101,24 +117,29 @@ module RSpec::ActiveModel::Mocks
101
117
  end
102
118
 
103
119
  unless model_class.kind_of? ::ActiveModel::Naming
104
- raise ArgumentError.new <<-EOM
120
+ raise ArgumentError, <<-EOM
105
121
  The mock_model method can only accept as its first argument:
106
122
  * A String representing a Class that does not exist
107
123
  * A String representing a Class that extends ActiveModel::Naming
108
124
  * A Class that extends ActiveModel::Naming
109
125
 
110
126
  It received #{model_class.inspect}
111
- EOM
127
+ EOM
112
128
  end
113
129
 
114
- stubs = {:id => next_id}.merge(stubs)
115
- stubs = {:persisted? => !!stubs[:id],
116
- :destroyed? => false,
117
- :marked_for_destruction? => false,
118
- :valid? => true,
119
- :blank? => false}.merge(stubs)
130
+ stubs = { :id => next_id }.merge(stubs)
131
+ stubs = { :persisted? => !!stubs[:id],
132
+ :destroyed? => false,
133
+ :marked_for_destruction? => false,
134
+ :valid? => true,
135
+ :blank? => false }.merge(stubs)
120
136
 
121
137
  double("#{model_class.name}_#{stubs[:id]}", stubs).tap do |m|
138
+ if model_class.method(:===).owner == Module && !stubs.key?(:===)
139
+ allow(model_class).to receive(:===).and_wrap_original do |original, other|
140
+ m === other || original.call(other)
141
+ end
142
+ end
122
143
  msingleton = class << m; self; end
123
144
  msingleton.class_eval do
124
145
  include ActiveModelInstanceMethods
@@ -126,25 +147,22 @@ EOM
126
147
  include ActiveModel::Conversion
127
148
  include ActiveModel::Validations
128
149
  end
129
- if defined?(ActiveRecord)
130
- [:save, :update_attributes, :update].each do |key|
131
- if stubs[key] == false
132
- RSpec::Mocks.allow_message(m.errors, :empty?).and_return(false)
133
- end
134
- end
150
+ if defined?(ActiveRecord) && stubs.values_at(:save, :update_attributes, :update).include?(false)
151
+ RSpec::Mocks.allow_message(m.errors, :empty?).and_return(false)
152
+ RSpec::Mocks.allow_message(m.errors, :blank?).and_return(false)
135
153
  end
136
154
 
137
155
  msingleton.__send__(:define_method, :is_a?) do |other|
138
156
  model_class.ancestors.include?(other)
139
- end unless stubs.has_key?(:is_a?)
157
+ end unless stubs.key?(:is_a?)
140
158
 
141
159
  msingleton.__send__(:define_method, :kind_of?) do |other|
142
160
  model_class.ancestors.include?(other)
143
- end unless stubs.has_key?(:kind_of?)
161
+ end unless stubs.key?(:kind_of?)
144
162
 
145
163
  msingleton.__send__(:define_method, :instance_of?) do |other|
146
164
  other == model_class
147
- end unless stubs.has_key?(:instance_of?)
165
+ end unless stubs.key?(:instance_of?)
148
166
 
149
167
  msingleton.__send__(:define_method, :__model_class_has_column?) do |method_name|
150
168
  model_class.respond_to?(:column_names) && model_class.column_names.include?(method_name.to_s)
@@ -152,28 +170,33 @@ EOM
152
170
 
153
171
  msingleton.__send__(:define_method, :has_attribute?) do |attr_name|
154
172
  __model_class_has_column?(attr_name)
155
- end unless stubs.has_key?(:has_attribute?)
173
+ end unless stubs.key?(:has_attribute?)
156
174
 
157
175
  msingleton.__send__(:define_method, :respond_to?) do |method_name, *args|
158
- include_private = args.first || false
176
+ include_private = args.first || false
159
177
  __model_class_has_column?(method_name) ? true : super(method_name, include_private)
160
- end unless stubs.has_key?(:respond_to?)
178
+ end unless stubs.key?(:respond_to?)
161
179
 
162
- msingleton.__send__(:define_method, :method_missing) do |m, *a, &b|
163
- respond_to?(m) ? null_object? ? self : nil : super(m, *a, &b)
180
+ msingleton.__send__(:define_method, :method_missing) do |missing_m, *a, &b|
181
+ if respond_to?(missing_m)
182
+ null_object? ? self : nil
183
+ else
184
+ super(missing_m, *a, &b)
185
+ end
164
186
  end
165
187
 
166
188
  msingleton.__send__(:define_method, :class) do
167
189
  model_class
168
- end unless stubs.has_key?(:class)
190
+ end unless stubs.key?(:class)
169
191
 
170
192
  mock_param = to_param
171
193
  msingleton.__send__(:define_method, :to_s) do
172
194
  "#{model_class.name}_#{mock_param}"
173
- end unless stubs.has_key?(:to_s)
195
+ end unless stubs.key?(:to_s)
174
196
  yield m if block_given?
175
197
  end
176
198
  end
199
+ # rubocop:enable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
177
200
 
178
201
  module ActiveModelStubExtensions
179
202
  # Stubs `persisted` to return false and `id` to return nil
@@ -192,7 +215,7 @@ EOM
192
215
  module ActiveRecordStubExtensions
193
216
  # Stubs `id` (or other primary key method) to return nil
194
217
  def as_new_record
195
- self.__send__("#{self.class.primary_key}=", nil)
218
+ __send__("#{self.class.primary_key}=", nil)
196
219
  super
197
220
  end
198
221
 
@@ -204,10 +227,13 @@ EOM
204
227
  # Raises an IllegalDataAccessException (stubbed models are not allowed to access the database)
205
228
  # @raises IllegalDataAccessException
206
229
  def connection
207
- raise RSpec::ActiveModel::Mocks::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
230
+ raise RSpec::ActiveModel::Mocks::IllegalDataAccessException,
231
+ "stubbed models are not allowed to access the database"
208
232
  end
209
233
  end
210
234
 
235
+ # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
236
+
211
237
  # Creates an instance of `Model` with `to_param` stubbed using a
212
238
  # generated value that is unique to each object. If `Model` is an
213
239
  # `ActiveRecord` model, it is prohibited from accessing the database.
@@ -241,17 +267,21 @@ EOM
241
267
  if defined?(ActiveRecord) && model_class < ActiveRecord::Base && model_class.primary_key
242
268
  m.extend ActiveRecordStubExtensions
243
269
  primary_key = model_class.primary_key.to_sym
244
- stubs = {primary_key => next_id}.merge(stubs)
245
- stubs = {:persisted? => !!stubs[primary_key]}.merge(stubs)
270
+ stubs = { primary_key => next_id }.merge(stubs)
271
+ stubs = { :persisted? => !!stubs[primary_key] }.merge(stubs)
246
272
  else
247
- stubs = {:id => next_id}.merge(stubs)
248
- stubs = {:persisted? => !!stubs[:id]}.merge(stubs)
273
+ stubs = { :id => next_id }.merge(stubs)
274
+ stubs = { :persisted? => !!stubs[:id] }.merge(stubs)
249
275
  end
250
- stubs = {:blank? => false}.merge(stubs)
276
+ stubs = { :blank? => false }.merge(stubs)
251
277
 
252
278
  stubs.each do |message, return_value|
253
279
  if m.respond_to?("#{message}=")
254
- m.__send__("#{message}=", return_value)
280
+ begin
281
+ m.__send__("#{message}=", return_value)
282
+ rescue ActiveModel::MissingAttributeError
283
+ RSpec::Mocks.allow_message(m, message).and_return(return_value)
284
+ end
255
285
  else
256
286
  RSpec::Mocks.allow_message(m, message).and_return(return_value)
257
287
  end
@@ -260,15 +290,17 @@ EOM
260
290
  yield m if block_given?
261
291
  end
262
292
  end
293
+ # rubocop:enable Metrics/AbcSize,Metrics/MethodLength
263
294
 
264
- private
295
+ private
265
296
 
297
+ # rubocop:disable Style/ClassVars
266
298
  @@model_id = 1000
267
299
 
268
300
  def next_id
269
301
  @@model_id += 1
270
302
  end
271
-
303
+ # rubocop:enable Style/ClassVars
272
304
  end
273
305
  end
274
306
 
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module RSpec
2
3
  module ActiveModel
3
4
  module Mocks
4
5
  module Version
5
- STRING = '1.0.3'
6
+ STRING = '1.2.0'
6
7
  end
7
8
  end
8
9
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require 'rspec/core'
2
3
 
3
- RSpec::configure do |c|
4
+ RSpec.configure do |c|
4
5
  c.backtrace_exclusion_patterns << /lib\/rspec\/active_model\/mocks/
5
6
  end
6
7
 
@@ -1 +1,2 @@
1
+ # frozen_string_literal: true
1
2
  require 'rspec/active_model/mocks'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe "mock_model(RealModel)" do
@@ -81,6 +82,7 @@ describe "mock_model(RealModel)" do
81
82
  it "is empty" do
82
83
  model = mock_model(MockableModel)
83
84
  expect(model.errors).to be_empty
85
+ expect(model.errors).to be_blank
84
86
  end
85
87
  end
86
88
 
@@ -88,6 +90,7 @@ describe "mock_model(RealModel)" do
88
90
  it "is not empty" do
89
91
  model = mock_model(MockableModel, :save => false)
90
92
  expect(model.errors).not_to be_empty
93
+ expect(model.errors).not_to be_blank
91
94
  end
92
95
  end
93
96
 
@@ -95,15 +98,16 @@ describe "mock_model(RealModel)" do
95
98
  it "is not empty" do
96
99
  model = mock_model(MockableModel, :save => false)
97
100
  expect(model.errors).not_to be_empty
101
+ expect(model.errors).not_to be_blank
98
102
  end
99
103
  end
100
104
  end
101
105
 
102
106
  describe "with params" do
103
107
  it "does not mutate its parameters" do
104
- params = {:a => 'b'}
108
+ params = { :a => 'b' }
105
109
  mock_model(MockableModel, params)
106
- expect(params).to eq({:a => 'b'})
110
+ expect(params).to eq({ :a => 'b' })
107
111
  end
108
112
  end
109
113
 
@@ -157,6 +161,56 @@ describe "mock_model(RealModel)" do
157
161
  end
158
162
  end
159
163
 
164
+ describe "#===" do
165
+ it "works with a case statement" do
166
+ case mock_model(MockableModel)
167
+ when MockableModel then true
168
+ else
169
+ raise
170
+ end
171
+
172
+ # rubocop:disable Lint/LiteralAsCondition
173
+ case :not_mockable_model
174
+ when MockableModel then raise
175
+ else
176
+ true
177
+ end
178
+ # rubocop:enable Lint/LiteralAsCondition
179
+ end
180
+
181
+ it "won't break previous stubs" do
182
+ allow(MockableModel).to receive(:===).with("string") { true }
183
+ mock_model(MockableModel)
184
+
185
+ # rubocop:disable Lint/LiteralAsCondition
186
+ case "string"
187
+ when MockableModel then true
188
+ else
189
+ raise
190
+ end
191
+ # rubocop:enable Lint/LiteralAsCondition
192
+ end
193
+
194
+ it "won't override class definitions" do
195
+ another_mockable_model =
196
+ Class.new(MockableModel) do
197
+ def self.===(_other)
198
+ true
199
+ end
200
+ end
201
+
202
+ mock_model(another_mockable_model)
203
+
204
+ # rubocop:disable Lint/LiteralAsCondition
205
+ case "string"
206
+ when another_mockable_model then true
207
+ else
208
+ raise
209
+ end
210
+ # rubocop:enable Lint/LiteralAsCondition
211
+ end
212
+ end
213
+
160
214
  describe "#kind_of?" do
161
215
  before(:each) do
162
216
  @model = mock_model(SubMockableModel)
@@ -196,7 +250,7 @@ describe "mock_model(RealModel)" do
196
250
  describe "#has_attribute?" do
197
251
  context "with an ActiveRecord model" do
198
252
  before(:each) do
199
- MockableModel.stub(:column_names).and_return(["column_a", "column_b"])
253
+ MockableModel.stub(:column_names).and_return(%w[column_a column_b])
200
254
  @model = mock_model(MockableModel)
201
255
  end
202
256
 
@@ -223,7 +277,7 @@ describe "mock_model(RealModel)" do
223
277
  describe "#respond_to?" do
224
278
  context "with an ActiveRecord model" do
225
279
  before(:each) do
226
- allow(MockableModel).to receive(:column_names).and_return(["column_a", "column_b"])
280
+ allow(MockableModel).to receive(:column_names).and_return(%w[column_a column_b])
227
281
  @model = mock_model(MockableModel)
228
282
  end
229
283
 
@@ -416,6 +470,7 @@ describe "mock_model(RealModel)" do
416
470
  end
417
471
 
418
472
  describe "ActiveModel Lint tests" do
473
+ # rubocop:disable Lint/EmptyExpression,Metrics/BlockNesting
419
474
  begin
420
475
  require 'minitest/assertions'
421
476
  include Minitest::Assertions
@@ -451,9 +506,9 @@ describe "mock_model(RealModel)" do
451
506
  ERR
452
507
  end
453
508
  include Test::Unit::Assertions
454
- if defined?(Test::Unit::AutoRunner.need_auto_run = ())
509
+ if defined?((Test::Unit::AutoRunner.need_auto_run = ()))
455
510
  Test::Unit::AutoRunner.need_auto_run = false
456
- elsif defined?(Test::Unit.run = ())
511
+ elsif defined?((Test::Unit.run = ()))
457
512
  Test::Unit.run = false
458
513
  end
459
514
  else
@@ -464,20 +519,21 @@ describe "mock_model(RealModel)" do
464
519
  else
465
520
  require 'test/unit/assertions'
466
521
  include Test::Unit::Assertions
467
- if defined?(Test::Unit::AutoRunner.need_auto_run = ())
522
+ if defined?((Test::Unit::AutoRunner.need_auto_run = ()))
468
523
  Test::Unit::AutoRunner.need_auto_run = false
469
- elsif defined?(Test::Unit.run = ())
524
+ elsif defined?((Test::Unit.run = ()))
470
525
  Test::Unit.run = false
471
526
  end
472
527
  end
473
528
  end
529
+ # rubocop:enable Lint/EmptyExpression,Metrics/BlockNesting
474
530
 
475
531
  require 'active_model/lint'
476
532
  include ActiveModel::Lint::Tests
477
533
 
478
534
  # to_s is to support ruby-1.9
479
- ActiveModel::Lint::Tests.public_instance_methods.map{|m| m.to_s}.grep(/^test/).each do |m|
480
- example m.gsub('_',' ') do
535
+ ActiveModel::Lint::Tests.public_instance_methods.map {|m| m.to_s}.grep(/^test/).each do |m|
536
+ example m.gsub('_', ' ') do
481
537
  send m
482
538
  end
483
539
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe "stub_model" do
@@ -89,7 +90,8 @@ describe "stub_model" do
89
90
  it "raises when hitting the db" do
90
91
  expect do
91
92
  stub_model(MockableModel).connection
92
- end.to raise_error(RSpec::ActiveModel::Mocks::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
93
+ end.to raise_error(RSpec::ActiveModel::Mocks::IllegalDataAccessException,
94
+ /stubbed models are not allowed to access the database/)
93
95
  end
94
96
 
95
97
  it "increments the id" do
@@ -161,6 +163,23 @@ describe "stub_model" do
161
163
  end
162
164
  expect(model).to be(@block_arg)
163
165
  end
166
+ end
167
+
168
+ describe "#===" do
169
+ it "works with a case statement" do
170
+ case stub_model(MockableModel)
171
+ when MockableModel then true
172
+ else
173
+ raise
174
+ end
164
175
 
176
+ # rubocop:disable Lint/LiteralAsCondition
177
+ case :not_stub_model
178
+ when MockableModel then raise
179
+ else
180
+ true
181
+ end
182
+ # rubocop:enable Lint/LiteralAsCondition
183
+ end
165
184
  end
166
185
  end
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  require 'rspec/active_model/mocks'
2
3
  require 'active_record'
3
4
 
4
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
5
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each {|f| require f}
5
6
 
6
- class RSpec::Core::ExampleGroup
7
- def self.run_all(reporter=nil)
8
- run(reporter || RSpec::Mocks::Mock.new('reporter').as_null_object)
7
+ module RSpec
8
+ module Core
9
+ class ExampleGroup
10
+ def self.run_all(reporter=nil)
11
+ run(reporter || RSpec::Mocks::Mock.new('reporter').as_null_object)
12
+ end
13
+ end
9
14
  end
10
15
  end
11
16
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ActiveRecord::Base.establish_connection(
2
3
  :adapter => 'sqlite3',
3
4
  :database => ':memory:'
@@ -5,31 +6,31 @@ ActiveRecord::Base.establish_connection(
5
6
 
6
7
  module Connections
7
8
  def self.extended(host)
8
- host.connection.execute <<-eosql
9
+ host.connection.execute <<-EOSQL
9
10
  CREATE TABLE #{host.table_name} (
10
11
  #{host.primary_key} integer PRIMARY KEY AUTOINCREMENT,
11
12
  associated_model_id integer,
12
13
  mockable_model_id integer,
13
14
  nonexistent_model_id integer
14
15
  )
15
- eosql
16
+ EOSQL
16
17
  end
17
18
  end
18
19
 
19
20
  module ConnectionsView
20
21
  def self.extended(host)
21
- host.connection.execute <<-eosql
22
+ host.connection.execute <<-EOSQL
22
23
  CREATE TABLE some_table (
23
24
  associated_model_id integer,
24
25
  mockable_model_id integer,
25
26
  nonexistent_model_id integer
26
27
  )
27
- eosql
28
+ EOSQL
28
29
 
29
- host.connection.execute <<-eosql
30
+ host.connection.execute <<-EOSQL
30
31
  CREATE VIEW #{host.table_name} AS
31
32
  select * from some_table;
32
- eosql
33
+ EOSQL
33
34
  end
34
35
  end
35
36
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Helpers
2
3
  def stub_metadata(additional_metadata)
3
4
  stub_metadata = metadata_with(additional_metadata)
@@ -1,7 +1,8 @@
1
- RSpec::Matchers::define :be_included_in_files_in do |path|
1
+ # frozen_string_literal: true
2
+ RSpec::Matchers.define :be_included_in_files_in do |path|
2
3
  match do |mod|
3
4
  stub_metadata(
4
- :example_group => {:file_path => "#{path}whatever_spec.rb:15"}
5
+ :example_group => { :file_path => "#{path}whatever_spec.rb:15" }
5
6
  )
6
7
  group = RSpec::Core::ExampleGroup.describe
7
8
  group.included_modules.include?(mod)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Minitest requires you provide an assertions ivar for the context
2
3
  # it is running within. We need this so that ActiveModel::Lint tests
3
4
  # can successfully be run.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class NullObject
2
3
  private
3
4
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-activemodel-mocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
8
8
  - Andy Lindeman
9
9
  - Thomas Holmes
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain:
13
13
  - |
@@ -45,10 +45,10 @@ cert_chain:
45
45
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
46
46
  F3MdtaDehhjC
47
47
  -----END CERTIFICATE-----
48
- date: 2016-01-28 00:00:00.000000000 Z
48
+ date: 2023-12-10 00:00:00.000000000 Z
49
49
  dependencies:
50
50
  - !ruby/object:Gem::Dependency
51
- name: activesupport
51
+ name: activemodel
52
52
  requirement: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
@@ -62,7 +62,7 @@ dependencies:
62
62
  - !ruby/object:Gem::Version
63
63
  version: '3.0'
64
64
  - !ruby/object:Gem::Dependency
65
- name: activemodel
65
+ name: activesupport
66
66
  requirement: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
@@ -95,76 +95,6 @@ dependencies:
95
95
  - - "<"
96
96
  - !ruby/object:Gem::Version
97
97
  version: '4.0'
98
- - !ruby/object:Gem::Dependency
99
- name: rake
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: 10.0.0
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: 10.0.0
112
- - !ruby/object:Gem::Dependency
113
- name: cucumber
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: 1.3.5
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: 1.3.5
126
- - !ruby/object:Gem::Dependency
127
- name: aruba
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: 0.4.11
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: 0.4.11
140
- - !ruby/object:Gem::Dependency
141
- name: ZenTest
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: 4.9.5
147
- type: :development
148
- prerelease: false
149
- version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: 4.9.5
154
- - !ruby/object:Gem::Dependency
155
- name: activerecord
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: '3.0'
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- version: '3.0'
168
98
  description: RSpec test doubles for ActiveModel and ActiveRecord
169
99
  email: rspec@googlegroups.com
170
100
  executables: []
@@ -177,7 +107,6 @@ files:
177
107
  - features/mocks/mock_model.feature
178
108
  - features/mocks/stub_model.feature
179
109
  - features/step_definitions/additional_cli_steps.rb
180
- - features/step_definitions/model_steps.rb
181
110
  - features/support/env.rb
182
111
  - features/support/rubinius.rb
183
112
  - lib/rspec-activemodel-mocks.rb
@@ -195,8 +124,13 @@ files:
195
124
  homepage: https://github.com/rspec/rspec-activemodel-mocks
196
125
  licenses:
197
126
  - MIT
198
- metadata: {}
199
- post_install_message:
127
+ metadata:
128
+ bug_tracker_uri: https://github.com/rspec/rspec-activemodel-mocks/issues
129
+ documentation_uri: https://rspec.info/documentation/
130
+ mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
131
+ source_code_uri: https://github.com/rspec/rspec-activemodel-mocks
132
+ rubygems_mfa_required: 'true'
133
+ post_install_message:
200
134
  rdoc_options:
201
135
  - "--charset=UTF-8"
202
136
  require_paths:
@@ -212,16 +146,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
146
  - !ruby/object:Gem::Version
213
147
  version: '0'
214
148
  requirements: []
215
- rubyforge_project:
216
- rubygems_version: 2.5.1
217
- signing_key:
149
+ rubygems_version: 3.4.10
150
+ signing_key:
218
151
  specification_version: 4
219
- summary: rspec-activemodel-mocks-1.0.3
152
+ summary: rspec-activemodel-mocks-1.2.0
220
153
  test_files:
221
154
  - features/mocks/mock_model.feature
222
155
  - features/mocks/stub_model.feature
223
156
  - features/step_definitions/additional_cli_steps.rb
224
- - features/step_definitions/model_steps.rb
225
157
  - features/support/env.rb
226
158
  - features/support/rubinius.rb
227
159
  - spec/rspec/active_model/mocks/mock_model_spec.rb
@@ -232,4 +164,3 @@ test_files:
232
164
  - spec/support/matchers.rb
233
165
  - spec/support/minitest_support.rb
234
166
  - spec/support/null_object.rb
235
- has_rdoc:
metadata.gz.sig CHANGED
Binary file
@@ -1,3 +0,0 @@
1
- Given /a (\w+) model/ do |model_class_name|
2
- puts eval(model_class_name)
3
- end