rspec-activemodel-mocks 1.2.1 → 1.3.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: 59ec608e6f9b0a1ee5477ed48c3d2750ad76600d4bae9f79d25c9a4780da6024
4
- data.tar.gz: 727ef3cc5f9cc8944e15ef79d9f43639b9e059ba4ac6c8a8eb6402722a5a4710
3
+ metadata.gz: a94dd2b6d61f1431637636ffc999a67abdd92e70d51de9daea7844fb4e706c7d
4
+ data.tar.gz: 6f5ee85b061eec9923b3d29c9256b3a0ad0eb38e6cc5b5b23c04ac2f51c849ee
5
5
  SHA512:
6
- metadata.gz: 545c2feb61438959b3c24a5197537a88951332d4c2e197a9ae0a95028aa014940c84a132d0a2382670d341ce57084736c42bb096859b8a8f70750a3d489f5c4d
7
- data.tar.gz: 56ee248bda2bc142e0fb391f3f21130a1632c63047896d3377243885ea97689c8b9ec612319cf087015678078297f5973aef07642d90d87728e692216ef5124d
6
+ metadata.gz: 209174dc5f015e1b1b9b80061659875032802ee616365534381df1c9bf7d7abdaa1c0a6aaba58499ab957216d270b8aae2e7efaf5e8e9a6ab6251724f41fb191
7
+ data.tar.gz: 59637b95cc2ba2fc1fc303b4df514a979e6945d8b0cfdfc120db91153b245aba6048e14b87415f79c75a79faba08086fe3b25f7ec74b10bda9ecb7fdb9fbd3c6
checksums.yaml.gz.sig CHANGED
Binary file
@@ -61,6 +61,9 @@ module RSpec::ActiveModel::Mocks
61
61
  # alternative to record['id']
62
62
  alias_method :_read_attribute, :[]
63
63
 
64
+ # Rails>7.1 added read_attribute for external usage similar to record['id']
65
+ alias_method :read_attribute, :[]
66
+
64
67
  # Returns the opposite of `persisted?`
65
68
  def new_record?
66
69
  !persisted?
@@ -103,6 +106,7 @@ module RSpec::ActiveModel::Mocks
103
106
  model_class = Object.const_set(string_or_model_class, Class.new do
104
107
  # rubocop:disable Style/SingleLineMethods
105
108
  extend ::ActiveModel::Naming
109
+
106
110
  def self.primary_key; :id; end
107
111
 
108
112
  # For detection of being a valid association in 7+
@@ -176,8 +180,11 @@ It received #{model_class.inspect}
176
180
  end unless stubs.key?(:has_attribute?)
177
181
 
178
182
  msingleton.__send__(:define_method, :respond_to?) do |method_name, *args|
183
+ return true if __model_class_has_column?(method_name)
184
+
179
185
  include_private = args.first || false
180
- __model_class_has_column?(method_name) ? true : super(method_name, include_private)
186
+
187
+ super(method_name, include_private)
181
188
  end unless stubs.key?(:respond_to?)
182
189
 
183
190
  msingleton.__send__(:define_method, :method_missing) do |missing_m, *a, &b|
@@ -3,7 +3,7 @@ module RSpec
3
3
  module ActiveModel
4
4
  module Mocks
5
5
  module Version
6
- STRING = '1.2.1'
6
+ STRING = '1.3.0'
7
7
  end
8
8
  end
9
9
  end
@@ -482,6 +482,44 @@ describe "mock_model(RealModel)" do
482
482
  end
483
483
  end
484
484
 
485
+ describe "attribute access methods" do
486
+ it "supports [] method with symbol" do
487
+ model = mock_model(MockableModel, :name => "John", :age => 25)
488
+ expect(model[:name]).to eq("John")
489
+ expect(model[:age]).to eq(25)
490
+ end
491
+
492
+ it "supports [] method with string" do
493
+ model = mock_model(MockableModel, :name => "John", :age => 25)
494
+ expect(model["name"]).to eq("John")
495
+ expect(model["age"]).to eq(25)
496
+ end
497
+
498
+ it "supports read_attribute method with symbol" do
499
+ model = mock_model(MockableModel, :name => "John", :age => 25)
500
+ expect(model.read_attribute(:name)).to eq("John")
501
+ expect(model.read_attribute(:age)).to eq(25)
502
+ end
503
+
504
+ it "supports read_attribute method with string" do
505
+ model = mock_model(MockableModel, :name => "John", :age => 25)
506
+ expect(model.read_attribute("name")).to eq("John")
507
+ expect(model.read_attribute("age")).to eq(25)
508
+ end
509
+
510
+ it "supports _read_attribute method with symbol" do
511
+ model = mock_model(MockableModel, :name => "John", :age => 25)
512
+ expect(model._read_attribute(:name)).to eq("John")
513
+ expect(model._read_attribute(:age)).to eq(25)
514
+ end
515
+
516
+ it "supports _read_attribute method with string" do
517
+ model = mock_model(MockableModel, :name => "John", :age => 25)
518
+ expect(model._read_attribute("name")).to eq("John")
519
+ expect(model._read_attribute("age")).to eq(25)
520
+ end
521
+ end
522
+
485
523
  describe "ActiveModel Lint tests" do
486
524
  # rubocop:disable Lint/EmptyExpression,Metrics/BlockNesting
487
525
  begin
@@ -519,6 +557,7 @@ describe "mock_model(RealModel)" do
519
557
  ERR
520
558
  end
521
559
  include Test::Unit::Assertions
560
+
522
561
  if defined?((Test::Unit::AutoRunner.need_auto_run = ()))
523
562
  Test::Unit::AutoRunner.need_auto_run = false
524
563
  elsif defined?((Test::Unit.run = ()))
@@ -532,6 +571,7 @@ describe "mock_model(RealModel)" do
532
571
  else
533
572
  require 'test/unit/assertions'
534
573
  include Test::Unit::Assertions
574
+
535
575
  if defined?((Test::Unit::AutoRunner.need_auto_run = ()))
536
576
  Test::Unit::AutoRunner.need_auto_run = false
537
577
  elsif defined?((Test::Unit.run = ()))
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'logger'
2
3
  require 'rspec/active_model/mocks'
3
4
  require 'active_record'
4
5
 
@@ -41,6 +41,7 @@ end
41
41
 
42
42
  class MockableModel < ActiveRecord::Base
43
43
  extend Connections
44
+
44
45
  has_one :associated_model
45
46
  end
46
47
 
@@ -54,6 +55,7 @@ end
54
55
 
55
56
  class AssociatedModel < ActiveRecord::Base
56
57
  extend Connections
58
+
57
59
  belongs_to :mockable_model
58
60
  belongs_to :nonexistent_model, :class_name => "Other"
59
61
  end
@@ -61,5 +63,6 @@ end
61
63
  class AlternatePrimaryKeyModel < ActiveRecord::Base
62
64
  self.primary_key = :my_id
63
65
  extend Connections
66
+
64
67
  attr_accessor :my_id
65
68
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,22 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-activemodel-mocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
8
8
  - Andy Lindeman
9
9
  - Thomas Holmes
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain:
13
12
  - |
14
13
  -----BEGIN CERTIFICATE-----
15
- MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
14
+ MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
16
15
  VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
17
16
  MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
18
- CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
19
- MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
17
+ CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMjUwMjA2MTE0NjU2WhcNMjYw
18
+ MjA2MTE0NjU2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
20
19
  EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
21
20
  Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
22
21
  IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
@@ -30,22 +29,21 @@ cert_chain:
30
29
  Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
31
30
  blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
32
31
  gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
33
- 2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
34
- Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
35
- MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
36
- gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
37
- +pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
38
- 8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
39
- ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
40
- Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
41
- UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
42
- BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
43
- Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
44
- e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
45
- ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
46
- F3MdtaDehhjC
32
+ 2FUsqZbbJcCmkBrGposCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
33
+ HQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMA0GCSqGSIb3DQEBCwUAA4IC
34
+ AQBGBr0ll2yLrkO6IeK5Q7qZFnANaUCKfi6Of9VztZJXgKAU5KAQxyOidGktoA5N
35
+ lp+bFKudRkW8jSehqoNaNBdSZ9Bc07EGMXIhUFJZF9rq7Z2SKPwUm6EaSsBK13QR
36
+ U4K6wuaw5ZJSFzklapoGOJRGnFlnNtlhNFY6+tTwCeblwZbcuYGyGY8+Rg7GbyVl
37
+ 3Tr4Gi1aS/qG/MDXKdE8HWm39dmaAMdbw6dg1VBd0JrX2VqH7xvE1dM/D3OlKrNp
38
+ gNFRNJig3Y8qPjocZR0cGkhgZoC9wribWxHSNawZm4CoV3fja2HNx9QyM7BaB+as
39
+ yuqAiBbA7vBcyc8nKATip3mxbyXYXoDD7nmO8JCPP7O/WsgG+U/B2a0kPdvYFoxE
40
+ Q0Js3GtFCuMvL+0rifqdxBOLtu0Pw9q4RvToTJIl2IR6eTgCb82B1hw9qKf7PjuL
41
+ BoEsYjjDhGw6FZvcJG8O6uj7aB+z4aF21YR74UGL7sq/RIPNNez5JI95jTGfqCPy
42
+ 6yo0w3zja3yg28QK3Fj+tbOHeSLv9SDQWi/1jiPprGzbxGvbVvjvX11YZc46vkmY
43
+ AwP+qZPPf97FXXZGEGIYhhHpnj+Ltx9nCetRPiZ4rvYBcXgCWVQSg6eiEofrMwn/
44
+ AKMCABhZ1Y2eATsfMgdkmIZk7JIPZiSi6eUxPiCMP9M/pw==
47
45
  -----END CERTIFICATE-----
48
- date: 2024-10-02 00:00:00.000000000 Z
46
+ date: 1980-01-02 00:00:00.000000000 Z
49
47
  dependencies:
50
48
  - !ruby/object:Gem::Dependency
51
49
  name: activemodel
@@ -130,7 +128,6 @@ metadata:
130
128
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
131
129
  source_code_uri: https://github.com/rspec/rspec-activemodel-mocks
132
130
  rubygems_mfa_required: 'true'
133
- post_install_message:
134
131
  rdoc_options:
135
132
  - "--charset=UTF-8"
136
133
  require_paths:
@@ -146,10 +143,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
143
  - !ruby/object:Gem::Version
147
144
  version: '0'
148
145
  requirements: []
149
- rubygems_version: 3.5.16
150
- signing_key:
146
+ rubygems_version: 3.6.7
151
147
  specification_version: 4
152
- summary: rspec-activemodel-mocks-1.2.1
148
+ summary: rspec-activemodel-mocks-1.3.0
153
149
  test_files:
154
150
  - features/mocks/mock_model.feature
155
151
  - features/mocks/stub_model.feature
metadata.gz.sig CHANGED
Binary file