mongoid 7.4.3 → 8.0.7
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +3 -3
- data/Rakefile +25 -0
- data/lib/config/locales/en.yml +52 -28
- data/lib/mongoid/association/accessors.rb +38 -9
- data/lib/mongoid/association/bindable.rb +50 -2
- data/lib/mongoid/association/builders.rb +4 -2
- data/lib/mongoid/association/constrainable.rb +0 -1
- data/lib/mongoid/association/eager_loadable.rb +29 -7
- data/lib/mongoid/association/embedded/batchable.rb +33 -10
- data/lib/mongoid/association/embedded/cyclic.rb +1 -1
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -2
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +2 -2
- data/lib/mongoid/association/embedded/embedded_in.rb +3 -2
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -0
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +65 -41
- data/lib/mongoid/association/embedded/embeds_many.rb +2 -2
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +18 -4
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +23 -4
- data/lib/mongoid/association/embedded/embeds_one.rb +3 -3
- data/lib/mongoid/association/macros.rb +28 -1
- data/lib/mongoid/association/many.rb +11 -7
- data/lib/mongoid/association/nested/many.rb +5 -4
- data/lib/mongoid/association/nested/nested_buildable.rb +4 -4
- data/lib/mongoid/association/nested/one.rb +5 -5
- data/lib/mongoid/association/one.rb +2 -2
- data/lib/mongoid/association/options.rb +9 -9
- data/lib/mongoid/association/proxy.rb +14 -3
- data/lib/mongoid/association/referenced/auto_save.rb +4 -3
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +5 -6
- data/lib/mongoid/association/referenced/belongs_to.rb +2 -2
- data/lib/mongoid/association/referenced/counter_cache.rb +10 -10
- data/lib/mongoid/association/referenced/eager.rb +2 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +70 -13
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +6 -3
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +20 -24
- data/lib/mongoid/association/referenced/has_many/proxy.rb +26 -16
- data/lib/mongoid/association/referenced/has_many.rb +3 -3
- data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +5 -5
- data/lib/mongoid/association/referenced/has_one/proxy.rb +9 -12
- data/lib/mongoid/association/referenced/has_one.rb +3 -3
- data/lib/mongoid/association/referenced/syncable.rb +4 -4
- data/lib/mongoid/association/reflections.rb +2 -2
- data/lib/mongoid/association/relatable.rb +44 -10
- data/lib/mongoid/association.rb +5 -5
- data/lib/mongoid/atomic/modifiers.rb +2 -2
- data/lib/mongoid/atomic.rb +7 -0
- data/lib/mongoid/attributes/dynamic.rb +3 -3
- data/lib/mongoid/attributes/nested.rb +5 -5
- data/lib/mongoid/attributes/processing.rb +37 -6
- data/lib/mongoid/attributes/projector.rb +1 -1
- data/lib/mongoid/attributes/readonly.rb +2 -2
- data/lib/mongoid/attributes.rb +43 -40
- data/lib/mongoid/cacheable.rb +2 -2
- data/lib/mongoid/changeable.rb +43 -10
- data/lib/mongoid/clients/options.rb +5 -1
- data/lib/mongoid/clients/sessions.rb +2 -14
- data/lib/mongoid/clients/validators/storage.rb +3 -3
- data/lib/mongoid/config/options.rb +3 -0
- data/lib/mongoid/config/validators/client.rb +6 -6
- data/lib/mongoid/config.rb +62 -17
- data/lib/mongoid/contextual/aggregable/memory.rb +24 -16
- data/lib/mongoid/contextual/aggregable/mongo.rb +5 -5
- data/lib/mongoid/contextual/aggregable/none.rb +1 -1
- data/lib/mongoid/contextual/atomic.rb +1 -1
- data/lib/mongoid/contextual/geo_near.rb +7 -7
- data/lib/mongoid/contextual/map_reduce.rb +2 -2
- data/lib/mongoid/contextual/memory.rb +180 -21
- data/lib/mongoid/contextual/mongo.rb +260 -217
- data/lib/mongoid/contextual/none.rb +67 -5
- data/lib/mongoid/contextual/queryable.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -2
- data/lib/mongoid/copyable.rb +32 -8
- data/lib/mongoid/criteria/findable.rb +7 -4
- data/lib/mongoid/criteria/includable.rb +24 -20
- data/lib/mongoid/criteria/marshalable.rb +10 -2
- data/lib/mongoid/criteria/permission.rb +1 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/array.rb +3 -14
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -15
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -9
- data/lib/mongoid/criteria/queryable/extensions/object.rb +2 -1
- data/lib/mongoid/criteria/queryable/extensions/range.rb +13 -5
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +3 -3
- data/lib/mongoid/criteria/queryable/extensions/set.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/string.rb +4 -14
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +4 -12
- data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +6 -1
- data/lib/mongoid/criteria/queryable/key.rb +3 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +21 -0
- data/lib/mongoid/criteria/queryable/optional.rb +5 -11
- data/lib/mongoid/criteria/queryable/options.rb +2 -2
- data/lib/mongoid/criteria/queryable/pipeline.rb +1 -1
- data/lib/mongoid/criteria/queryable/selectable.rb +31 -37
- data/lib/mongoid/criteria/queryable/selector.rb +93 -8
- data/lib/mongoid/criteria/queryable/smash.rb +40 -7
- data/lib/mongoid/criteria/queryable/storable.rb +1 -1
- data/lib/mongoid/criteria/queryable.rb +12 -7
- data/lib/mongoid/criteria/scopable.rb +2 -2
- data/lib/mongoid/criteria/translator.rb +45 -0
- data/lib/mongoid/criteria.rb +16 -35
- data/lib/mongoid/deprecable.rb +37 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +135 -34
- data/lib/mongoid/equality.rb +8 -8
- data/lib/mongoid/errors/document_not_found.rb +33 -12
- data/lib/mongoid/errors/invalid_config_option.rb +1 -1
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +1 -1
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_field.rb +6 -2
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/invalid_relation.rb +1 -1
- data/lib/mongoid/errors/invalid_relation_option.rb +1 -1
- data/lib/mongoid/errors/invalid_session_use.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/mongoid_error.rb +3 -3
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -1
- data/lib/mongoid/errors/no_client_database.rb +1 -1
- data/lib/mongoid/errors/no_client_hosts.rb +1 -1
- data/lib/mongoid/errors/readonly_attribute.rb +1 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -1
- data/lib/mongoid/errors/unknown_attribute.rb +1 -1
- data/lib/mongoid/errors.rb +2 -2
- data/lib/mongoid/extensions/array.rb +9 -7
- data/lib/mongoid/extensions/big_decimal.rb +33 -10
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +8 -2
- data/lib/mongoid/extensions/date.rb +26 -20
- data/lib/mongoid/extensions/date_time.rb +1 -1
- data/lib/mongoid/extensions/false_class.rb +1 -1
- data/lib/mongoid/extensions/float.rb +7 -4
- data/lib/mongoid/extensions/hash.rb +37 -8
- data/lib/mongoid/extensions/integer.rb +7 -4
- data/lib/mongoid/extensions/module.rb +1 -1
- data/lib/mongoid/extensions/object.rb +8 -6
- data/lib/mongoid/extensions/range.rb +41 -10
- data/lib/mongoid/extensions/regexp.rb +11 -4
- data/lib/mongoid/extensions/set.rb +11 -4
- data/lib/mongoid/extensions/string.rb +11 -22
- data/lib/mongoid/extensions/symbol.rb +4 -15
- data/lib/mongoid/extensions/time.rb +27 -16
- data/lib/mongoid/extensions/time_with_zone.rb +1 -2
- data/lib/mongoid/extensions/true_class.rb +1 -1
- data/lib/mongoid/extensions.rb +1 -0
- data/lib/mongoid/factory.rb +55 -7
- data/lib/mongoid/fields/foreign_key.rb +11 -4
- data/lib/mongoid/fields/localized.rb +9 -4
- data/lib/mongoid/fields/standard.rb +7 -7
- data/lib/mongoid/fields/validators/macro.rb +3 -9
- data/lib/mongoid/fields.rb +233 -40
- data/lib/mongoid/findable.rb +34 -13
- data/lib/mongoid/indexable/specification.rb +2 -2
- data/lib/mongoid/indexable/validators/options.rb +6 -2
- data/lib/mongoid/interceptable.rb +185 -16
- data/lib/mongoid/matchable.rb +1 -1
- data/lib/mongoid/matcher.rb +33 -13
- data/lib/mongoid/persistable/creatable.rb +18 -9
- data/lib/mongoid/persistable/deletable.rb +1 -1
- data/lib/mongoid/persistable/destroyable.rb +1 -1
- data/lib/mongoid/persistable/savable.rb +2 -2
- data/lib/mongoid/persistable/unsettable.rb +1 -1
- data/lib/mongoid/persistable/updatable.rb +19 -12
- data/lib/mongoid/persistable/upsertable.rb +1 -1
- data/lib/mongoid/persistable.rb +3 -3
- data/lib/mongoid/persistence_context.rb +63 -10
- data/lib/mongoid/query_cache.rb +8 -260
- data/lib/mongoid/railties/controller_runtime.rb +1 -1
- data/lib/mongoid/reloadable.rb +10 -8
- data/lib/mongoid/scopable.rb +26 -22
- data/lib/mongoid/selectable.rb +1 -2
- data/lib/mongoid/serializable.rb +10 -6
- data/lib/mongoid/shardable.rb +35 -11
- data/lib/mongoid/stateful.rb +35 -9
- data/lib/mongoid/tasks/database.rb +0 -2
- data/lib/mongoid/threaded/lifecycle.rb +5 -5
- data/lib/mongoid/threaded.rb +42 -12
- data/lib/mongoid/timestamps/created.rb +1 -1
- data/lib/mongoid/timestamps/updated.rb +2 -2
- data/lib/mongoid/touchable.rb +2 -3
- data/lib/mongoid/traversable.rb +5 -4
- data/lib/mongoid/validatable/localizable.rb +1 -1
- data/lib/mongoid/validatable/macros.rb +0 -2
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +9 -8
- data/lib/mongoid/validatable.rb +6 -6
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +28 -0
- data/lib/mongoid.rb +2 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- data/spec/config/mongoid.yml +16 -0
- data/spec/integration/app_spec.rb +8 -12
- data/spec/integration/associations/belongs_to_spec.rb +18 -0
- data/spec/integration/associations/embedded_spec.rb +15 -0
- data/spec/integration/associations/embeds_many_spec.rb +15 -2
- data/spec/integration/associations/embeds_one_spec.rb +18 -0
- data/spec/integration/associations/foreign_key_spec.rb +9 -0
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
- data/spec/integration/associations/has_one_spec.rb +97 -1
- data/spec/integration/associations/scope_option_spec.rb +1 -1
- data/spec/integration/callbacks_models.rb +95 -1
- data/spec/integration/callbacks_spec.rb +246 -4
- data/spec/integration/criteria/range_spec.rb +95 -1
- data/spec/integration/discriminator_key_spec.rb +115 -76
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +1 -17
- data/spec/integration/matcher_examples_spec.rb +20 -13
- data/spec/integration/matcher_operator_data/type_decimal.yml +3 -2
- data/spec/integration/matcher_operator_spec.rb +3 -5
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/mongoid/association/counter_cache_spec.rb +1 -1
- data/spec/mongoid/association/depending_spec.rb +9 -9
- data/spec/mongoid/association/eager_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +69 -9
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +235 -40
- data/spec/mongoid/association/embedded/embeds_many_models.rb +36 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +68 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +19 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +54 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +15 -0
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +202 -201
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +25 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +35 -2
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +109 -0
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +8 -8
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +160 -119
- data/spec/mongoid/association/referenced/has_many_models.rb +3 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +25 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +107 -1
- data/spec/mongoid/association/referenced/has_one_models.rb +16 -0
- data/spec/mongoid/association/syncable_spec.rb +14 -0
- data/spec/mongoid/atomic/paths_spec.rb +0 -14
- data/spec/mongoid/attributes/nested_spec.rb +80 -11
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_spec.rb +1 -5
- data/spec/mongoid/attributes_spec.rb +551 -27
- data/spec/mongoid/cacheable_spec.rb +3 -3
- data/spec/mongoid/changeable_spec.rb +130 -13
- data/spec/mongoid/clients/factory_spec.rb +23 -30
- data/spec/mongoid/clients/options_spec.rb +1 -0
- data/spec/mongoid/clients/sessions_spec.rb +0 -38
- data/spec/mongoid/clients_spec.rb +57 -2
- data/spec/mongoid/config_spec.rb +78 -18
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +396 -158
- data/spec/mongoid/contextual/aggregable/memory_table.yml +88 -0
- data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +62 -0
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -16
- data/spec/mongoid/contextual/memory_spec.rb +1336 -69
- data/spec/mongoid/contextual/mongo_spec.rb +1253 -247
- data/spec/mongoid/contextual/none_spec.rb +38 -0
- data/spec/mongoid/copyable_spec.rb +451 -1
- data/spec/mongoid/criteria/findable_spec.rb +86 -210
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +18 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -19
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -26
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -15
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -7
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -59
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -59
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/optional_spec.rb +15 -484
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +50 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +289 -124
- data/spec/mongoid/criteria/queryable/selector_spec.rb +89 -4
- data/spec/mongoid/criteria/queryable/storable_spec.rb +72 -0
- data/spec/mongoid/criteria/translator_spec.rb +132 -0
- data/spec/mongoid/criteria_projection_spec.rb +0 -1
- data/spec/mongoid/criteria_spec.rb +475 -1199
- data/spec/mongoid/document_fields_spec.rb +173 -24
- data/spec/mongoid/document_spec.rb +32 -41
- data/spec/mongoid/errors/document_not_found_spec.rb +76 -0
- data/spec/mongoid/errors/invalid_field_spec.rb +1 -1
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +3 -1
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -1
- data/spec/mongoid/extensions/array_spec.rb +16 -2
- data/spec/mongoid/extensions/big_decimal_spec.rb +712 -212
- data/spec/mongoid/extensions/binary_spec.rb +44 -9
- data/spec/mongoid/extensions/boolean_spec.rb +68 -82
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -3
- data/spec/mongoid/extensions/date_spec.rb +71 -1
- data/spec/mongoid/extensions/date_time_spec.rb +15 -9
- data/spec/mongoid/extensions/float_spec.rb +53 -74
- data/spec/mongoid/extensions/hash_spec.rb +33 -3
- data/spec/mongoid/extensions/integer_spec.rb +50 -64
- data/spec/mongoid/extensions/range_spec.rb +255 -54
- data/spec/mongoid/extensions/regexp_spec.rb +58 -33
- data/spec/mongoid/extensions/set_spec.rb +106 -0
- data/spec/mongoid/extensions/string_spec.rb +53 -25
- data/spec/mongoid/extensions/symbol_spec.rb +18 -25
- data/spec/mongoid/extensions/time_spec.rb +634 -66
- data/spec/mongoid/extensions/time_with_zone_spec.rb +17 -31
- data/spec/mongoid/factory_spec.rb +61 -1
- data/spec/mongoid/fields/localized_spec.rb +37 -12
- data/spec/mongoid/fields_spec.rb +364 -50
- data/spec/mongoid/findable_spec.rb +80 -15
- data/spec/mongoid/indexable/specification_spec.rb +2 -2
- data/spec/mongoid/indexable_spec.rb +39 -20
- data/spec/mongoid/interceptable_spec.rb +807 -27
- data/spec/mongoid/interceptable_spec_models.rb +235 -4
- data/spec/mongoid/matcher/extract_attribute_spec.rb +1 -5
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +2 -2
- data/spec/mongoid/persistable/deletable_spec.rb +2 -2
- data/spec/mongoid/persistable/destroyable_spec.rb +2 -2
- data/spec/mongoid/persistable/upsertable_spec.rb +14 -0
- data/spec/mongoid/persistence_context_spec.rb +50 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
- data/spec/mongoid/query_cache_spec.rb +0 -154
- data/spec/mongoid/reloadable_spec.rb +59 -2
- data/spec/mongoid/scopable_spec.rb +54 -16
- data/spec/mongoid/shardable_models.rb +14 -0
- data/spec/mongoid/shardable_spec.rb +157 -51
- data/spec/mongoid/stateful_spec.rb +28 -0
- data/spec/mongoid/timestamps_spec.rb +390 -0
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +116 -0
- data/spec/mongoid/touchable_spec_models.rb +12 -8
- data/spec/mongoid/traversable_spec.rb +4 -11
- data/spec/mongoid/validatable/presence_spec.rb +1 -1
- data/spec/mongoid/validatable/uniqueness_spec.rb +59 -31
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +1 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
- data/spec/rails/mongoid_spec.rb +4 -16
- data/spec/shared/lib/mrss/docker_runner.rb +7 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +10 -2
- data/spec/shared/lib/mrss/server_version_registry.rb +16 -23
- data/spec/shared/lib/mrss/utils.rb +28 -6
- data/spec/shared/share/Dockerfile.erb +36 -40
- data/spec/shared/shlib/server.sh +32 -8
- data/spec/shared/shlib/set_env.sh +4 -4
- data/spec/support/constraints.rb +24 -0
- data/spec/support/macros.rb +46 -0
- data/spec/support/models/augmentation.rb +12 -0
- data/spec/support/models/band.rb +3 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/support/models/circus.rb +3 -0
- data/spec/support/models/code.rb +2 -0
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/support/models/implant.rb +9 -0
- data/spec/support/models/label.rb +2 -0
- data/spec/support/models/passport.rb +9 -0
- data/spec/support/models/person.rb +2 -0
- data/spec/support/models/player.rb +2 -0
- data/spec/support/models/powerup.rb +12 -0
- data/spec/support/models/purse.rb +9 -0
- data/spec/support/models/registry.rb +1 -0
- data/spec/support/models/school.rb +14 -0
- data/spec/support/models/shield.rb +18 -0
- data/spec/support/models/student.rb +14 -0
- data/spec/support/models/weapon.rb +12 -0
- data.tar.gz.sig +4 -1
- metadata +682 -635
- metadata.gz.sig +0 -0
- data/lib/mongoid/errors/eager_load.rb +0 -23
- data/lib/mongoid/errors/invalid_value.rb +0 -17
- data/spec/mongoid/errors/eager_load_spec.rb +0 -31
@@ -555,6 +555,56 @@ describe Mongoid::Changeable do
|
|
555
555
|
end
|
556
556
|
end
|
557
557
|
|
558
|
+
describe '#attribute_previously_was' do
|
559
|
+
let(:previous_title) do
|
560
|
+
"Grand Poobah"
|
561
|
+
end
|
562
|
+
|
563
|
+
let(:age) do
|
564
|
+
10
|
565
|
+
end
|
566
|
+
|
567
|
+
let(:person) do
|
568
|
+
Person.create!(title: previous_title, age: age)
|
569
|
+
end
|
570
|
+
|
571
|
+
let(:updated_title) do
|
572
|
+
"Captain Obvious"
|
573
|
+
end
|
574
|
+
|
575
|
+
before do
|
576
|
+
person.title = updated_title
|
577
|
+
person.save!
|
578
|
+
end
|
579
|
+
|
580
|
+
context 'when attribute changed' do
|
581
|
+
it "returns the old value" do
|
582
|
+
expect(person.send(:attribute_previously_was, "title")).to eq(previous_title)
|
583
|
+
end
|
584
|
+
|
585
|
+
it "allows access via (attribute)_was" do
|
586
|
+
expect(person.title_previously_was).to eq(previous_title)
|
587
|
+
end
|
588
|
+
end
|
589
|
+
|
590
|
+
context 'when attribute did not change' do
|
591
|
+
it "returns the same value" do
|
592
|
+
expect(person.send(:attribute_previously_was, "age")).to eq(age)
|
593
|
+
end
|
594
|
+
|
595
|
+
it "allows access via (attribute)_was" do
|
596
|
+
expect(person.age_previously_was).to eq(age)
|
597
|
+
end
|
598
|
+
end
|
599
|
+
|
600
|
+
it 'clears after reload' do
|
601
|
+
person.reload
|
602
|
+
expect(person.title_previously_was).to be_nil
|
603
|
+
expect(person.age_previously_was).to be_nil
|
604
|
+
end
|
605
|
+
|
606
|
+
end
|
607
|
+
|
558
608
|
describe "#attribute_will_change!" do
|
559
609
|
|
560
610
|
let(:aliases) do
|
@@ -962,12 +1012,69 @@ describe Mongoid::Changeable do
|
|
962
1012
|
person.user_accounts << user_account
|
963
1013
|
end
|
964
1014
|
|
965
|
-
it '
|
966
|
-
|
1015
|
+
it 'should not add to the changes or changed_attributes hash' do
|
1016
|
+
person.changes.should == {}
|
1017
|
+
person.changed_attributes.should == {}
|
1018
|
+
end
|
1019
|
+
end
|
1020
|
+
|
1021
|
+
context 'when habtm association _ids changes' do
|
967
1022
|
|
968
|
-
|
969
|
-
|
970
|
-
|
1023
|
+
let(:person) do
|
1024
|
+
Person.create!(title: "Grand Poobah")
|
1025
|
+
end
|
1026
|
+
|
1027
|
+
let(:user_account) do
|
1028
|
+
UserAccount.create!
|
1029
|
+
end
|
1030
|
+
|
1031
|
+
before do
|
1032
|
+
person.user_account_ids << user_account._id
|
1033
|
+
end
|
1034
|
+
|
1035
|
+
it 'should add to the changes or changed_attributes hash' do
|
1036
|
+
person.changes.should == { "user_account_ids" => [ nil, [ user_account._id ] ] }
|
1037
|
+
person.changed_attributes.should == { "user_account_ids" => nil }
|
1038
|
+
end
|
1039
|
+
end
|
1040
|
+
|
1041
|
+
context 'when assigning empty list to habtm association' do
|
1042
|
+
|
1043
|
+
let(:person) do
|
1044
|
+
Person.create!(title: "Grand Poobah", user_accounts: [user_account])
|
1045
|
+
end
|
1046
|
+
|
1047
|
+
let(:user_account) do
|
1048
|
+
UserAccount.create!
|
1049
|
+
end
|
1050
|
+
|
1051
|
+
before do
|
1052
|
+
person.user_accounts = []
|
1053
|
+
end
|
1054
|
+
|
1055
|
+
it 'should not add to the changes or changed_attributes hash' do
|
1056
|
+
person.changes.should == {}
|
1057
|
+
person.changed_attributes.should == {}
|
1058
|
+
end
|
1059
|
+
end
|
1060
|
+
|
1061
|
+
context 'when assigning empty list to habtm association _ids' do
|
1062
|
+
|
1063
|
+
let(:person) do
|
1064
|
+
Person.create!(title: "Grand Poobah", user_accounts: [user_account])
|
1065
|
+
end
|
1066
|
+
|
1067
|
+
let(:user_account) do
|
1068
|
+
UserAccount.create!
|
1069
|
+
end
|
1070
|
+
|
1071
|
+
before do
|
1072
|
+
person.user_account_ids = []
|
1073
|
+
end
|
1074
|
+
|
1075
|
+
it 'should not add to the changes or changed_attributes hash' do
|
1076
|
+
person.changes.should == { "user_account_ids" => [ [ user_account._id ], [] ] }
|
1077
|
+
person.changed_attributes.should == { "user_account_ids" => [ user_account._id ] }
|
971
1078
|
end
|
972
1079
|
end
|
973
1080
|
|
@@ -1649,21 +1756,26 @@ describe Mongoid::Changeable do
|
|
1649
1756
|
|
1650
1757
|
before do
|
1651
1758
|
Acolyte.set_callback(:save, :after, if: :callback_test?) do |doc|
|
1652
|
-
doc[:
|
1759
|
+
doc[:changed_in_after_callback] = doc.changes.dup
|
1760
|
+
end
|
1761
|
+
|
1762
|
+
Acolyte.set_callback(:save, :before, if: :callback_test?) do |doc|
|
1763
|
+
doc[:changed_in_before_callback] = doc.changes.dup
|
1653
1764
|
end
|
1654
1765
|
end
|
1655
1766
|
|
1656
1767
|
after do
|
1657
1768
|
Acolyte._save_callbacks.select do |callback|
|
1658
|
-
callback.kind
|
1769
|
+
[:before, :after].include?(callback.kind)
|
1659
1770
|
end.each do |callback|
|
1660
1771
|
Acolyte._save_callbacks.delete(callback)
|
1661
1772
|
end
|
1662
1773
|
end
|
1663
1774
|
|
1664
|
-
it "
|
1775
|
+
it "does not retain the changes until after all callbacks" do
|
1665
1776
|
acolyte.update_attribute(:status, "testing")
|
1666
|
-
expect(acolyte.
|
1777
|
+
expect(acolyte.changed_in_before_callback).to eq({"status"=>[nil, "testing"]})
|
1778
|
+
expect(acolyte.changed_in_after_callback).to eq({ })
|
1667
1779
|
end
|
1668
1780
|
end
|
1669
1781
|
|
@@ -1675,21 +1787,26 @@ describe Mongoid::Changeable do
|
|
1675
1787
|
|
1676
1788
|
before do
|
1677
1789
|
Acolyte.set_callback(:save, :after, if: :callback_test?) do |doc|
|
1678
|
-
doc[:
|
1790
|
+
doc[:changed_after_in_callback] = doc.changes.dup
|
1791
|
+
end
|
1792
|
+
|
1793
|
+
Acolyte.set_callback(:save, :before, if: :callback_test?) do |doc|
|
1794
|
+
doc[:changed_before_in_callback] = doc.changes.dup
|
1679
1795
|
end
|
1680
1796
|
end
|
1681
1797
|
|
1682
1798
|
after do
|
1683
1799
|
Acolyte._save_callbacks.select do |callback|
|
1684
|
-
callback.kind
|
1800
|
+
[:before, :after].include?(callback.kind)
|
1685
1801
|
end.each do |callback|
|
1686
1802
|
Acolyte._save_callbacks.delete(callback)
|
1687
1803
|
end
|
1688
1804
|
end
|
1689
1805
|
|
1690
|
-
it "
|
1806
|
+
it "does not retain the changes until after all callbacks" do
|
1691
1807
|
acolyte.save!
|
1692
|
-
expect(acolyte.
|
1808
|
+
expect(acolyte.changed_before_in_callback["name"]).to eq([ nil, "callback-test" ])
|
1809
|
+
expect(acolyte.changed_after_in_callback["name"]).to be_nil
|
1693
1810
|
end
|
1694
1811
|
end
|
1695
1812
|
end
|
@@ -65,10 +65,7 @@ describe Mongoid::Clients::Factory do
|
|
65
65
|
expect(client).to be_a(Mongo::Client)
|
66
66
|
end
|
67
67
|
|
68
|
-
context 'not
|
69
|
-
# Run this test on JRuby when driver 2.16.0 is released -
|
70
|
-
# see RUBY-2771.
|
71
|
-
fails_on_jruby
|
68
|
+
context 'on driver versions that do not report spurious EOF errors' do
|
72
69
|
|
73
70
|
it 'does not produce driver warnings' do
|
74
71
|
Mongo::Logger.logger.should_not receive(:warn)
|
@@ -86,35 +83,31 @@ describe Mongoid::Clients::Factory do
|
|
86
83
|
expect(client.options[:platform]).to eq(Mongoid::PLATFORM_DETAILS)
|
87
84
|
end
|
88
85
|
|
89
|
-
|
90
|
-
|
86
|
+
it 'sets Mongoid as a wrapping library' do
|
87
|
+
client.options[:wrapping_libraries].should == [BSON::Document.new(
|
88
|
+
Mongoid::Clients::Factory::MONGOID_WRAPPING_LIBRARY)]
|
89
|
+
end
|
91
90
|
|
92
|
-
|
93
|
-
client.options[:wrapping_libraries].should == [BSON::Document.new(
|
94
|
-
Mongoid::Clients::Factory::MONGOID_WRAPPING_LIBRARY)]
|
95
|
-
end
|
91
|
+
context 'when configuration specifies a wrapping library' do
|
96
92
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
{
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
wrapping_libraries: [{name: 'Foo'}],
|
107
|
-
},
|
108
|
-
}
|
93
|
+
let(:config) do
|
94
|
+
{
|
95
|
+
default: { hosts: SpecConfig.instance.addresses, database: database_id },
|
96
|
+
analytics: {
|
97
|
+
hosts: SpecConfig.instance.addresses,
|
98
|
+
database: database_id,
|
99
|
+
options: {
|
100
|
+
wrapping_libraries: [{name: 'Foo'}],
|
101
|
+
},
|
109
102
|
}
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'adds Mongoid as another wrapping library' do
|
107
|
+
client.options[:wrapping_libraries].should == [
|
108
|
+
BSON::Document.new(Mongoid::Clients::Factory::MONGOID_WRAPPING_LIBRARY),
|
109
|
+
{'name' => 'Foo'},
|
110
|
+
]
|
118
111
|
end
|
119
112
|
end
|
120
113
|
end
|
@@ -166,25 +166,6 @@ describe Mongoid::Clients::Sessions do
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
169
|
-
|
170
|
-
context 'when sessions are not supported' do
|
171
|
-
max_server_version '3.4'
|
172
|
-
|
173
|
-
let!(:error) do
|
174
|
-
e = nil
|
175
|
-
begin
|
176
|
-
Person.with_session {}
|
177
|
-
rescue => ex
|
178
|
-
e = ex
|
179
|
-
end
|
180
|
-
e
|
181
|
-
end
|
182
|
-
|
183
|
-
it 'raises a sessions not supported error' do
|
184
|
-
expect(error).to be_a(Mongoid::Errors::InvalidSessionUse)
|
185
|
-
expect(error.message).to include('not supported')
|
186
|
-
end
|
187
|
-
end
|
188
169
|
end
|
189
170
|
|
190
171
|
context 'when a session is used on a model instance' do
|
@@ -312,24 +293,5 @@ describe Mongoid::Clients::Sessions do
|
|
312
293
|
end
|
313
294
|
end
|
314
295
|
end
|
315
|
-
|
316
|
-
context 'when sessions are not supported' do
|
317
|
-
max_server_version '3.4'
|
318
|
-
|
319
|
-
let!(:error) do
|
320
|
-
e = nil
|
321
|
-
begin
|
322
|
-
person.with_session {}
|
323
|
-
rescue => ex
|
324
|
-
e = ex
|
325
|
-
end
|
326
|
-
e
|
327
|
-
end
|
328
|
-
|
329
|
-
it 'raises a sessions not supported error' do
|
330
|
-
expect(error).to be_a(Mongoid::Errors::InvalidSessionUse)
|
331
|
-
expect(error.message).to include('not supported')
|
332
|
-
end
|
333
|
-
end
|
334
296
|
end
|
335
297
|
end
|
@@ -802,7 +802,7 @@ describe Mongoid::Clients do
|
|
802
802
|
it "does not persist to the default database" do
|
803
803
|
expect {
|
804
804
|
Band.find(band.id)
|
805
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
805
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
806
806
|
end
|
807
807
|
|
808
808
|
let(:from_db) do
|
@@ -840,7 +840,7 @@ describe Mongoid::Clients do
|
|
840
840
|
it "does not persist to the default database" do
|
841
841
|
expect {
|
842
842
|
Band.find(band.id)
|
843
|
-
}.to raise_error(Mongoid::Errors::DocumentNotFound)
|
843
|
+
}.to raise_error(Mongoid::Errors::DocumentNotFound, /Document\(s\) not found for class Band with id\(s\)/)
|
844
844
|
end
|
845
845
|
|
846
846
|
let(:from_db) do
|
@@ -1012,6 +1012,61 @@ describe Mongoid::Clients do
|
|
1012
1012
|
end
|
1013
1013
|
end
|
1014
1014
|
end
|
1015
|
+
|
1016
|
+
context 'when requesting named client' do
|
1017
|
+
let(:secondary_client) do
|
1018
|
+
double(Mongo::Client).tap do |client|
|
1019
|
+
allow(client).to receive(:cluster).and_return(double("cluster"))
|
1020
|
+
end
|
1021
|
+
end
|
1022
|
+
|
1023
|
+
before do
|
1024
|
+
expect(Mongoid::Clients::Factory).to receive(:create)
|
1025
|
+
.with(:secondary)
|
1026
|
+
.and_return(secondary_client)
|
1027
|
+
end
|
1028
|
+
|
1029
|
+
after do
|
1030
|
+
Mongoid::Clients.clients.delete(:secondary)
|
1031
|
+
end
|
1032
|
+
|
1033
|
+
it 'does not close the client' do
|
1034
|
+
expect(secondary_client).not_to receive(:close)
|
1035
|
+
|
1036
|
+
Band.with(client: :default) do |klass|
|
1037
|
+
klass.mongo_client
|
1038
|
+
end
|
1039
|
+
|
1040
|
+
Band.with(client: :secondary) do |klass|
|
1041
|
+
klass.mongo_client
|
1042
|
+
end
|
1043
|
+
end
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
context 'when using on different objects' do
|
1047
|
+
require_mri
|
1048
|
+
|
1049
|
+
let(:first_band) do
|
1050
|
+
Band.create!(name: "The Beatles")
|
1051
|
+
end
|
1052
|
+
|
1053
|
+
let(:second_band) do
|
1054
|
+
Band.create!(name: 'Led Zeppelin')
|
1055
|
+
end
|
1056
|
+
|
1057
|
+
it 'does not create extra symbols symbols' do
|
1058
|
+
first_band.with(write: { w: 0, j: false }) do |band|
|
1059
|
+
band.set(active: false)
|
1060
|
+
end
|
1061
|
+
initial_symbols_count = Symbol.all_symbols.size
|
1062
|
+
second_band.with(write: { w: 0, j: false }) do |band|
|
1063
|
+
band.set(active: false)
|
1064
|
+
end
|
1065
|
+
expect(Symbol.all_symbols.size).to eq(initial_symbols_count)
|
1066
|
+
end
|
1067
|
+
|
1068
|
+
end
|
1069
|
+
|
1015
1070
|
end
|
1016
1071
|
|
1017
1072
|
context "when overriding the default database" do
|
data/spec/mongoid/config_spec.rb
CHANGED
@@ -204,7 +204,7 @@ describe Mongoid::Config do
|
|
204
204
|
|
205
205
|
Mongoid.configure { |config| config.load_configuration(configuration) }
|
206
206
|
|
207
|
-
expect(Mongoid::Config.discriminator_key).to
|
207
|
+
expect(Mongoid::Config.discriminator_key).to eq("_type")
|
208
208
|
end
|
209
209
|
end
|
210
210
|
|
@@ -215,11 +215,11 @@ describe Mongoid::Config do
|
|
215
215
|
|
216
216
|
Mongoid.configure { |config| config.load_configuration(configuration) }
|
217
217
|
|
218
|
-
expect(Mongoid::Config.discriminator_key).to
|
218
|
+
expect(Mongoid::Config.discriminator_key).to eq("test")
|
219
219
|
end
|
220
220
|
|
221
221
|
it 'is set globally' do
|
222
|
-
expect(Mongoid.discriminator_key).to
|
222
|
+
expect(Mongoid.discriminator_key).to eq("test")
|
223
223
|
end
|
224
224
|
end
|
225
225
|
end
|
@@ -260,74 +260,103 @@ describe Mongoid::Config do
|
|
260
260
|
let(:conf) { CONFIG }
|
261
261
|
|
262
262
|
it "it is set to its default" do
|
263
|
-
expect(Mongoid.send(option)).to
|
263
|
+
expect(Mongoid.send(option)).to eq(default)
|
264
264
|
end
|
265
265
|
end
|
266
266
|
end
|
267
267
|
|
268
|
+
context 'when setting the map_big_decimal_to_decimal128 option in the config' do
|
269
|
+
let(:option) { :map_big_decimal_to_decimal128 }
|
270
|
+
let(:default) { true }
|
271
|
+
|
272
|
+
it_behaves_like "a config option"
|
273
|
+
end
|
274
|
+
|
275
|
+
context 'when setting the allow_bson5_decimal128 option in the config' do
|
276
|
+
min_bson_version '5.0'
|
277
|
+
|
278
|
+
let(:option) { :allow_bson5_decimal128 }
|
279
|
+
let(:default) { false }
|
280
|
+
|
281
|
+
it_behaves_like "a config option"
|
282
|
+
end
|
283
|
+
|
268
284
|
context 'when setting the broken_updates option in the config' do
|
269
285
|
let(:option) { :broken_updates }
|
270
|
-
let(:default) {
|
286
|
+
let(:default) { false }
|
271
287
|
|
272
288
|
it_behaves_like "a config option"
|
273
289
|
end
|
274
290
|
|
275
291
|
context 'when setting the legacy_triple_equals option in the config' do
|
276
292
|
let(:option) { :legacy_triple_equals }
|
277
|
-
let(:default) {
|
293
|
+
let(:default) { false }
|
278
294
|
|
279
295
|
it_behaves_like "a config option"
|
280
296
|
end
|
281
297
|
|
282
298
|
context 'when setting the broken_scoping option in the config' do
|
283
299
|
let(:option) { :broken_scoping }
|
284
|
-
let(:default) {
|
300
|
+
let(:default) { false }
|
285
301
|
|
286
302
|
it_behaves_like "a config option"
|
287
303
|
end
|
288
304
|
|
289
305
|
context 'when setting the broken_aggregables option in the config' do
|
290
306
|
let(:option) { :broken_aggregables }
|
291
|
-
let(:default) {
|
307
|
+
let(:default) { false }
|
292
308
|
|
293
309
|
it_behaves_like "a config option"
|
294
310
|
end
|
295
311
|
|
296
312
|
context 'when setting the broken_alias_handling option in the config' do
|
297
313
|
let(:option) { :broken_alias_handling }
|
298
|
-
let(:default) {
|
314
|
+
let(:default) { false }
|
299
315
|
|
300
316
|
it_behaves_like "a config option"
|
301
317
|
end
|
302
318
|
|
303
319
|
context 'when setting the broken_and option in the config' do
|
304
320
|
let(:option) { :broken_and }
|
305
|
-
let(:default) {
|
321
|
+
let(:default) { false }
|
306
322
|
|
307
323
|
it_behaves_like "a config option"
|
308
324
|
end
|
309
325
|
|
310
326
|
context 'when setting the compare_time_by_ms option in the config' do
|
311
327
|
let(:option) { :compare_time_by_ms }
|
312
|
-
let(:default) {
|
328
|
+
let(:default) { true }
|
313
329
|
|
314
330
|
it_behaves_like "a config option"
|
315
331
|
end
|
316
332
|
|
317
333
|
context 'when setting the object_id_as_json_oid option in the config' do
|
318
334
|
let(:option) { :object_id_as_json_oid }
|
319
|
-
let(:default) {
|
335
|
+
let(:default) { false }
|
320
336
|
|
321
337
|
it_behaves_like "a config option"
|
322
338
|
end
|
323
339
|
|
324
340
|
context 'when setting the legacy_pluck_distinct option in the config' do
|
325
341
|
let(:option) { :legacy_pluck_distinct }
|
326
|
-
let(:default) {
|
342
|
+
let(:default) { false }
|
343
|
+
|
344
|
+
it_behaves_like "a config option"
|
345
|
+
end
|
346
|
+
|
347
|
+
context 'when setting the overwrite_chained_operators option in the config' do
|
348
|
+
let(:option) { :overwrite_chained_operators }
|
349
|
+
let(:default) { false }
|
327
350
|
|
328
351
|
it_behaves_like "a config option"
|
329
352
|
end
|
330
353
|
|
354
|
+
context 'when setting the legacy_attributes option in the config' do
|
355
|
+
let(:option) { :legacy_attributes }
|
356
|
+
let(:default) { false }
|
357
|
+
|
358
|
+
it_behaves_like "a config option"
|
359
|
+
end
|
331
360
|
|
332
361
|
describe "#load!" do
|
333
362
|
|
@@ -449,6 +478,40 @@ describe Mongoid::Config do
|
|
449
478
|
end
|
450
479
|
end
|
451
480
|
|
481
|
+
context "when provided an environment with driver options" do
|
482
|
+
|
483
|
+
before do
|
484
|
+
described_class.load!(file, :test)
|
485
|
+
end
|
486
|
+
|
487
|
+
after do
|
488
|
+
described_class.reset
|
489
|
+
end
|
490
|
+
|
491
|
+
it "sets the Mongo.broken_view_options option" do
|
492
|
+
expect(Mongo.broken_view_options).to eq(false)
|
493
|
+
end
|
494
|
+
|
495
|
+
it "does not override the unset Mongo.validate_update_replace option" do
|
496
|
+
expect(Mongo.validate_update_replace).to eq(false)
|
497
|
+
end
|
498
|
+
end
|
499
|
+
|
500
|
+
context "when provided an environment with a nil driver option" do
|
501
|
+
|
502
|
+
before do
|
503
|
+
described_class.load!(file, :test_nil)
|
504
|
+
end
|
505
|
+
|
506
|
+
after do
|
507
|
+
described_class.reset
|
508
|
+
end
|
509
|
+
|
510
|
+
it "sets the Mongo.broken_view_options option to nil" do
|
511
|
+
expect(Mongo.broken_view_options).to be_nil
|
512
|
+
end
|
513
|
+
end
|
514
|
+
|
452
515
|
context "when the rack environment is set" do
|
453
516
|
|
454
517
|
before do
|
@@ -543,12 +606,9 @@ describe Mongoid::Config do
|
|
543
606
|
|
544
607
|
let(:client) { Mongoid.default_client }
|
545
608
|
|
546
|
-
# Wrapping libraries are only recognized by driver 2.13.0+.
|
547
|
-
min_driver_version '2.13'
|
548
|
-
|
549
609
|
it 'passes uuid to driver' do
|
550
610
|
Mongo::Client.should receive(:new).with(SpecConfig.instance.addresses,
|
551
|
-
auto_encryption_options: {
|
611
|
+
{ auto_encryption_options: {
|
552
612
|
'key_vault_namespace' => 'admin.datakeys',
|
553
613
|
'kms_providers' => {'local' => {'key' => 'z7iYiYKLuYymEWtk4kfny1ESBwwFdA58qMqff96A8ghiOcIK75lJGPUIocku8LOFjQuEgeIP4xlln3s7r93FV9J5sAE7zg8U'}},
|
554
614
|
'schema_map' => {'blog_development.comments' => {
|
@@ -565,7 +625,7 @@ describe Mongoid::Config do
|
|
565
625
|
platform: "mongoid-#{Mongoid::VERSION}",
|
566
626
|
wrapping_libraries: [
|
567
627
|
{'name' => 'Mongoid', 'version' => Mongoid::VERSION},
|
568
|
-
],
|
628
|
+
]},
|
569
629
|
)
|
570
630
|
|
571
631
|
client
|