mongoid 6.4.1 → 6.4.8

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.
Files changed (58) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -3
  4. data/Rakefile +26 -0
  5. data/lib/mongoid.rb +1 -1
  6. data/lib/mongoid/contextual/map_reduce.rb +1 -1
  7. data/lib/mongoid/criteria/modifiable.rb +12 -2
  8. data/lib/mongoid/criteria/queryable/selectable.rb +34 -7
  9. data/lib/mongoid/document.rb +4 -4
  10. data/lib/mongoid/extensions/big_decimal.rb +1 -1
  11. data/lib/mongoid/extensions/regexp.rb +1 -0
  12. data/lib/mongoid/extensions/string.rb +3 -1
  13. data/lib/mongoid/matchable.rb +3 -0
  14. data/lib/mongoid/matchable/nor.rb +37 -0
  15. data/lib/mongoid/persistable/settable.rb +5 -5
  16. data/lib/mongoid/persistence_context.rb +4 -0
  17. data/lib/mongoid/query_cache.rb +64 -19
  18. data/lib/mongoid/railtie.rb +17 -0
  19. data/lib/mongoid/railties/controller_runtime.rb +86 -0
  20. data/lib/mongoid/scopable.rb +3 -3
  21. data/lib/mongoid/threaded.rb +36 -0
  22. data/lib/mongoid/version.rb +1 -1
  23. data/spec/app/models/array_field.rb +7 -0
  24. data/spec/app/models/delegating_patient.rb +16 -0
  25. data/spec/integration/document_spec.rb +22 -0
  26. data/spec/mongoid/clients/factory_spec.rb +52 -28
  27. data/spec/mongoid/clients/options_spec.rb +30 -15
  28. data/spec/mongoid/clients/sessions_spec.rb +12 -3
  29. data/spec/mongoid/contextual/geo_near_spec.rb +1 -0
  30. data/spec/mongoid/contextual/mongo_spec.rb +2 -2
  31. data/spec/mongoid/criteria/modifiable_spec.rb +59 -10
  32. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +3 -3
  33. data/spec/mongoid/criteria/queryable/selectable_spec.rb +42 -3
  34. data/spec/mongoid/criteria/queryable/selector_spec.rb +2 -2
  35. data/spec/mongoid/criteria/scopable_spec.rb +81 -0
  36. data/spec/mongoid/criteria_spec.rb +4 -1
  37. data/spec/mongoid/document_spec.rb +54 -0
  38. data/spec/mongoid/extensions/big_decimal_spec.rb +9 -9
  39. data/spec/mongoid/extensions/regexp_spec.rb +23 -0
  40. data/spec/mongoid/extensions/string_spec.rb +35 -7
  41. data/spec/mongoid/fields_spec.rb +1 -1
  42. data/spec/mongoid/findable_spec.rb +1 -1
  43. data/spec/mongoid/matchable/nor_spec.rb +209 -0
  44. data/spec/mongoid/matchable_spec.rb +26 -1
  45. data/spec/mongoid/persistable/incrementable_spec.rb +6 -6
  46. data/spec/mongoid/persistable/settable_spec.rb +19 -0
  47. data/spec/mongoid/query_cache_spec.rb +87 -18
  48. data/spec/mongoid/scopable_spec.rb +13 -0
  49. data/spec/mongoid/threaded_spec.rb +68 -0
  50. data/spec/rails/controller_extension/controller_runtime_spec.rb +110 -0
  51. data/spec/spec_helper.rb +10 -0
  52. data/spec/support/cluster_config.rb +158 -0
  53. data/spec/support/constraints.rb +101 -0
  54. data/spec/support/macros.rb +20 -0
  55. data/spec/support/session_registry.rb +50 -0
  56. data/spec/support/spec_config.rb +42 -0
  57. metadata +43 -23
  58. metadata.gz.sig +0 -0
@@ -34,6 +34,11 @@ end
34
34
 
35
35
  require 'support/authorization'
36
36
  require 'support/expectations'
37
+ require 'support/macros'
38
+ require 'support/spec_config'
39
+ require 'support/cluster_config'
40
+ require 'support/constraints'
41
+ require 'support/session_registry'
37
42
 
38
43
  # Give MongoDB time to start up on the travis ci environment.
39
44
  if (ENV['CI'] == 'travis' || ENV['CI'] == 'evergreen')
@@ -127,8 +132,13 @@ end
127
132
  I18n.config.enforce_available_locales = false
128
133
 
129
134
  RSpec.configure do |config|
135
+ config.expect_with(:rspec) do |c|
136
+ c.syntax = [:should, :expect]
137
+ end
138
+
130
139
  config.raise_errors_for_deprecations!
131
140
  config.include(Mongoid::Expectations)
141
+ config.extend(Constraints)
132
142
 
133
143
  config.before(:suite) do
134
144
  client = Mongo::Client.new(["#{HOST}:#{PORT}"])
@@ -0,0 +1,158 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ require 'singleton'
5
+
6
+ class ClusterConfig
7
+ include Singleton
8
+
9
+ def single_server?
10
+ determine_cluster_config
11
+ @single_server
12
+ end
13
+
14
+ def replica_set_name
15
+ determine_cluster_config
16
+ @replica_set_name
17
+ end
18
+
19
+ def server_version
20
+ determine_cluster_config
21
+ @server_version
22
+ end
23
+
24
+ def short_server_version
25
+ server_version.split('.')[0..1].join('.')
26
+ end
27
+
28
+ def fcv
29
+ determine_cluster_config
30
+ @fcv
31
+ end
32
+
33
+ # Per https://jira.mongodb.org/browse/SERVER-39052, working with FCV
34
+ # in sharded topologies is annoying. Also, FCV doesn't exist in servers
35
+ # less than 3.4. This method returns FCV on 3.4+ servers when in single
36
+ # or RS topologies, and otherwise returns the major.minor server version.
37
+ def fcv_ish
38
+ if server_version >= '3.4' && topology != :sharded
39
+ fcv
40
+ else
41
+ if short_server_version == '4.1'
42
+ '4.2'
43
+ else
44
+ short_server_version
45
+ end
46
+ end
47
+ end
48
+
49
+ def primary_address
50
+ determine_cluster_config
51
+ @primary_address
52
+ end
53
+
54
+ def primary_address_str
55
+ determine_cluster_config
56
+ @primary_address.seed
57
+ end
58
+
59
+ def primary_address_host
60
+ both = primary_address_str
61
+ both.split(':').first
62
+ end
63
+
64
+ def primary_address_port
65
+ both = primary_address_str
66
+ both.split(':')[1] || 27017
67
+ end
68
+
69
+ def primary_description
70
+ determine_cluster_config
71
+ @primary_description
72
+ end
73
+
74
+ # Try running a command on the admin database to see if the mongod was
75
+ # started with auth.
76
+ def auth_enabled?
77
+ if @auth_enabled.nil?
78
+ @auth_enabled = begin
79
+ basic_client.use(:admin).command(getCmdLineOpts: 1).first["argv"].include?("--auth")
80
+ rescue => e
81
+ e.message =~ /(not authorized)|(unauthorized)|(no users authenticated)|(requires authentication)/
82
+ end
83
+ end
84
+ @auth_enabled
85
+ end
86
+
87
+ def topology
88
+ determine_cluster_config
89
+ @topology
90
+ end
91
+
92
+ def storage_engine
93
+ @storage_engine ||= begin
94
+ # 2.6 does not have wired tiger
95
+ if short_server_version == '2.6'
96
+ :mmapv1
97
+ else
98
+ client = ClientRegistry.instance.global_client('root_authorized')
99
+ if topology == :sharded
100
+ shards = client.use(:admin).command(listShards: 1).first
101
+ shard = shards['shards'].first
102
+ address_str = shard['host'].sub(/^.*\//, '').sub(/,.*/, '')
103
+ client = ClusterTools.instance.direct_client(address_str,
104
+ SpecConfig.instance.test_options.merge(SpecConfig.instance.auth_options).merge(connect: :direct))
105
+ end
106
+ rv = client.use(:admin).command(serverStatus: 1).first
107
+ rv = rv['storageEngine']['name']
108
+ rv_map = {
109
+ 'wiredTiger' => :wired_tiger,
110
+ 'mmapv1' => :mmapv1,
111
+ }
112
+ rv_map[rv] || rv
113
+ end
114
+ end
115
+ end
116
+
117
+ private
118
+
119
+ def determine_cluster_config
120
+ return if @primary_address
121
+
122
+ # Run all commands to figure out the cluster configuration from the same
123
+ # client. This is somewhat wasteful when running a single test, but reduces
124
+ # test runtime for the suite overall because all commands are sent on the
125
+ # same connection rather than each command connecting to the cluster by
126
+ # itself.
127
+ client = Mongoid::Clients.default
128
+
129
+ primary = client.cluster.next_primary
130
+ @primary_address = primary.address
131
+ @primary_description = primary.description
132
+ @replica_set_name = client.cluster.topology.replica_set_name
133
+
134
+ @topology ||= begin
135
+ topology = client.cluster.topology.class.name.sub(/.*::/, '')
136
+ topology = topology.gsub(/([A-Z])/) { |match| '_' + match.downcase }.sub(/^_/, '')
137
+ if topology =~ /^replica_set/
138
+ topology = 'replica_set'
139
+ end
140
+ topology.to_sym
141
+ end
142
+
143
+ @single_server = client.cluster.send(:servers_list).length == 1
144
+
145
+ @server_version = client.database.command(buildInfo: 1).first['version']
146
+
147
+ if @topology != :sharded && short_server_version >= '3.4'
148
+ rv = client.use(:admin).command(getParameter: 1, featureCompatibilityVersion: 1).first['featureCompatibilityVersion']
149
+ @fcv = rv['version'] || rv
150
+ end
151
+ end
152
+
153
+ def basic_client
154
+ # Do not cache the result here so that if the client gets closed,
155
+ # client registry reconnects it in subsequent tests
156
+ ClientRegistry.instance.global_client('basic')
157
+ end
158
+ end
@@ -0,0 +1,101 @@
1
+ module Constraints
2
+ RAILS_VERSION = ActiveSupport.version.to_s.split('.')[0..1].join('.').freeze
3
+
4
+ def min_rails_version(version)
5
+ unless version =~ /^\d+\.\d+$/
6
+ raise ArgumentError, "Version can only be major.minor: #{version}"
7
+ end
8
+
9
+ before do
10
+ if version > RAILS_VERSION
11
+ skip "Rails version #{version} or higher required, we have #{RAILS_VERSION}"
12
+ end
13
+ end
14
+ end
15
+
16
+ def max_rails_version(version)
17
+ unless version =~ /^\d+\.\d+$/
18
+ raise ArgumentError, "Version can only be major.minor: #{version}"
19
+ end
20
+
21
+ before do
22
+ if version < RAILS_VERSION
23
+ skip "Rails version #{version} or lower required, we have #{RAILS_VERSION}"
24
+ end
25
+ end
26
+ end
27
+
28
+ def min_server_version(version)
29
+ unless version =~ /^\d+\.\d+$/
30
+ raise ArgumentError, "Version can only be major.minor: #{version}"
31
+ end
32
+
33
+ before do
34
+ if version > ClusterConfig.instance.server_version
35
+ skip "Server version #{version} or higher required, we have #{ClusterConfig.instance.server_version}"
36
+ end
37
+ end
38
+ end
39
+
40
+ def max_server_version(version)
41
+ unless version =~ /^\d+\.\d+$/
42
+ raise ArgumentError, "Version can only be major.minor: #{version}"
43
+ end
44
+
45
+ before do
46
+ if version < ClusterConfig.instance.short_server_version
47
+ skip "Server version #{version} or lower required, we have #{ClusterConfig.instance.server_version}"
48
+ end
49
+ end
50
+ end
51
+
52
+ def require_topology(*topologies)
53
+ topologies = topologies.map { |t| t.to_s }
54
+ invalid_topologies = topologies - %w(single replica_set sharded)
55
+ unless invalid_topologies.empty?
56
+ raise ArgumentError, "Invalid topologies requested: #{invalid_topologies.join(', ')}"
57
+ end
58
+ before do
59
+ topology = Mongoid.default_client.cluster.topology.class.name.sub(/.*::/, '')
60
+ topology = topology.gsub(/([A-Z])/) { |match| '_' + match.downcase }.sub(/^_/, '')
61
+ if topology =~ /^replica_set/
62
+ topology = 'replica_set'
63
+ end
64
+ unless topologies.include?(topology)
65
+ skip "Topology #{topologies.join(' or ')} required, we have #{topology}"
66
+ end
67
+ end
68
+ end
69
+
70
+ def max_example_run_time(timeout)
71
+ around do |example|
72
+ TimeoutInterrupt.timeout(timeout) do
73
+ example.run
74
+ end
75
+ end
76
+ end
77
+
78
+ def require_transaction_support
79
+ min_server_version '4.0'
80
+ require_topology :replica_set
81
+ end
82
+
83
+ def require_scram_sha_256_support
84
+ before do
85
+ $mongo_server_features ||= begin
86
+ scanned_client_server!.features
87
+ end
88
+ unless $mongo_server_features.scram_sha_256_enabled?
89
+ skip "SCRAM SHA 256 is not enabled on the server"
90
+ end
91
+ end
92
+ end
93
+
94
+ def require_ssl
95
+ before do
96
+ unless SpecConfig.instance.ssl?
97
+ skip "SSL not enabled"
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mongoid
4
+ module Macros
5
+ def use_spec_mongoid_config
6
+ around do |example|
7
+ config_path = File.join(File.dirname(__FILE__), "..", "config", "mongoid.yml")
8
+
9
+ Mongoid::Clients.clear
10
+ Mongoid.load!(config_path, :test)
11
+
12
+ begin
13
+ example.run
14
+ ensure
15
+ Mongoid::Config.reset
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,50 @@
1
+ require 'singleton'
2
+
3
+ module Mongo
4
+ class Client
5
+ alias :get_session_without_tracking :get_session
6
+
7
+ def get_session(options = {})
8
+ get_session_without_tracking(options).tap do |session|
9
+ SessionRegistry.instance.register(session)
10
+ end
11
+ end
12
+ end
13
+
14
+ class Session
15
+ alias :end_session_without_tracking :end_session
16
+
17
+ def end_session
18
+ SessionRegistry.instance.unregister(self)
19
+ end_session_without_tracking
20
+ end
21
+ end
22
+ end
23
+
24
+
25
+ class SessionRegistry
26
+ include Singleton
27
+
28
+ def initialize
29
+ @registry = {}
30
+ end
31
+
32
+ def register(session)
33
+ @registry[session.session_id] = session if session
34
+ end
35
+
36
+ def unregister(session)
37
+ @registry.delete(session.session_id)
38
+ end
39
+
40
+ def verify_sessions_ended!
41
+ unless @registry.empty?
42
+ sessions = @registry.map { |_, session| session }
43
+ raise "Session registry contains live sessions: #{sessions.join(', ')}"
44
+ end
45
+ end
46
+
47
+ def clear_registry
48
+ @registry = {}
49
+ end
50
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ require 'singleton'
5
+
6
+ class SpecConfig
7
+ include Singleton
8
+
9
+ def initialize
10
+ if ENV['MONGODB_URI']
11
+ @mongodb_uri = Mongo::URI.new(ENV['MONGODB_URI'])
12
+ end
13
+ end
14
+
15
+ def addresses
16
+ if @mongodb_uri
17
+ @mongodb_uri.servers
18
+ else
19
+ ['127.0.0.1']
20
+ end
21
+ end
22
+
23
+ def mri?
24
+ !jruby?
25
+ end
26
+
27
+ def jruby?
28
+ RUBY_PLATFORM =~ /\bjava\b/
29
+ end
30
+
31
+ def platform
32
+ RUBY_PLATFORM
33
+ end
34
+
35
+ def client_debug?
36
+ %w(1 true yes).include?((ENV['CLIENT_DEBUG'] || '').downcase)
37
+ end
38
+
39
+ def ci?
40
+ !!ENV['CI']
41
+ end
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.1
4
+ version: 6.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
@@ -10,27 +10,26 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 4WTnJSGfXDiuoXICJb5yOPOZPuaapPSNXp93QkUdsqdKC32I+KMpKKYGBQ6yisfA
22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
30
+ Qb1lGORmf/opg45mluKUYl7pQNZHD0d3
32
31
  -----END CERTIFICATE-----
33
- date: 2018-05-03 00:00:00.000000000 Z
32
+ date: 2020-11-06 00:00:00.000000000 Z
34
33
  dependencies:
35
34
  - !ruby/object:Gem::Dependency
36
35
  name: activemodel
@@ -265,6 +264,7 @@ files:
265
264
  - lib/mongoid/matchable/lte.rb
266
265
  - lib/mongoid/matchable/ne.rb
267
266
  - lib/mongoid/matchable/nin.rb
267
+ - lib/mongoid/matchable/nor.rb
268
268
  - lib/mongoid/matchable/or.rb
269
269
  - lib/mongoid/matchable/regexp.rb
270
270
  - lib/mongoid/matchable/size.rb
@@ -287,6 +287,7 @@ files:
287
287
  - lib/mongoid/positional.rb
288
288
  - lib/mongoid/query_cache.rb
289
289
  - lib/mongoid/railtie.rb
290
+ - lib/mongoid/railties/controller_runtime.rb
290
291
  - lib/mongoid/railties/database.rake
291
292
  - lib/mongoid/relations.rb
292
293
  - lib/mongoid/relations/accessors.rb
@@ -397,6 +398,7 @@ files:
397
398
  - spec/app/models/animal.rb
398
399
  - spec/app/models/answer.rb
399
400
  - spec/app/models/appointment.rb
401
+ - spec/app/models/array_field.rb
400
402
  - spec/app/models/article.rb
401
403
  - spec/app/models/artist.rb
402
404
  - spec/app/models/artwork.rb
@@ -439,6 +441,7 @@ files:
439
441
  - spec/app/models/country_code.rb
440
442
  - spec/app/models/courier_job.rb
441
443
  - spec/app/models/definition.rb
444
+ - spec/app/models/delegating_patient.rb
442
445
  - spec/app/models/description.rb
443
446
  - spec/app/models/dictionary.rb
444
447
  - spec/app/models/division.rb
@@ -593,6 +596,7 @@ files:
593
596
  - spec/app/models/word_origin.rb
594
597
  - spec/app/models/writer.rb
595
598
  - spec/config/mongoid.yml
599
+ - spec/integration/document_spec.rb
596
600
  - spec/mongoid/atomic/modifiers_spec.rb
597
601
  - spec/mongoid/atomic/paths/embedded/many_spec.rb
598
602
  - spec/mongoid/atomic/paths/embedded/one_spec.rb
@@ -751,6 +755,7 @@ files:
751
755
  - spec/mongoid/matchable/lte_spec.rb
752
756
  - spec/mongoid/matchable/ne_spec.rb
753
757
  - spec/mongoid/matchable/nin_spec.rb
758
+ - spec/mongoid/matchable/nor_spec.rb
754
759
  - spec/mongoid/matchable/or_spec.rb
755
760
  - spec/mongoid/matchable/regexp_spec.rb
756
761
  - spec/mongoid/matchable/size_spec.rb
@@ -848,10 +853,16 @@ files:
848
853
  - spec/mongoid/validatable/uniqueness_spec.rb
849
854
  - spec/mongoid/validatable_spec.rb
850
855
  - spec/mongoid_spec.rb
856
+ - spec/rails/controller_extension/controller_runtime_spec.rb
851
857
  - spec/rails/mongoid_spec.rb
852
858
  - spec/spec_helper.rb
853
859
  - spec/support/authorization.rb
860
+ - spec/support/cluster_config.rb
861
+ - spec/support/constraints.rb
854
862
  - spec/support/expectations.rb
863
+ - spec/support/macros.rb
864
+ - spec/support/session_registry.rb
865
+ - spec/support/spec_config.rb
855
866
  homepage: http://mongoid.org
856
867
  licenses:
857
868
  - MIT
@@ -871,8 +882,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
871
882
  - !ruby/object:Gem::Version
872
883
  version: 1.3.6
873
884
  requirements: []
874
- rubyforge_project: mongoid
875
- rubygems_version: 2.6.14
885
+ rubygems_version: 3.0.3
876
886
  signing_key:
877
887
  specification_version: 4
878
888
  summary: Elegant Persistence in Ruby for MongoDB.
@@ -1116,6 +1126,7 @@ test_files:
1116
1126
  - spec/mongoid/validatable/length_spec.rb
1117
1127
  - spec/mongoid/document_spec.rb
1118
1128
  - spec/mongoid/matchable/regexp_spec.rb
1129
+ - spec/mongoid/matchable/nor_spec.rb
1119
1130
  - spec/mongoid/matchable/lte_spec.rb
1120
1131
  - spec/mongoid/matchable/ne_spec.rb
1121
1132
  - spec/mongoid/matchable/in_spec.rb
@@ -1193,6 +1204,7 @@ test_files:
1193
1204
  - spec/app/models/store_as_dup_test2.rb
1194
1205
  - spec/app/models/agent.rb
1195
1206
  - spec/app/models/shipment_address.rb
1207
+ - spec/app/models/array_field.rb
1196
1208
  - spec/app/models/kangaroo.rb
1197
1209
  - spec/app/models/my_hash.rb
1198
1210
  - spec/app/models/favorite.rb
@@ -1253,6 +1265,7 @@ test_files:
1253
1265
  - spec/app/models/question.rb
1254
1266
  - spec/app/models/implant.rb
1255
1267
  - spec/app/models/id_key.rb
1268
+ - spec/app/models/delegating_patient.rb
1256
1269
  - spec/app/models/palette.rb
1257
1270
  - spec/app/models/owner.rb
1258
1271
  - spec/app/models/address_component.rb
@@ -1342,7 +1355,14 @@ test_files:
1342
1355
  - spec/app/models/kaleidoscope.rb
1343
1356
  - spec/app/models/artwork.rb
1344
1357
  - spec/config/mongoid.yml
1358
+ - spec/integration/document_spec.rb
1345
1359
  - spec/mongoid_spec.rb
1360
+ - spec/support/session_registry.rb
1361
+ - spec/support/constraints.rb
1362
+ - spec/support/macros.rb
1346
1363
  - spec/support/expectations.rb
1347
1364
  - spec/support/authorization.rb
1365
+ - spec/support/spec_config.rb
1366
+ - spec/support/cluster_config.rb
1367
+ - spec/rails/controller_extension/controller_runtime_spec.rb
1348
1368
  - spec/rails/mongoid_spec.rb