mongoid 7.1.1 → 8.1.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +20 -20
- data/README.md +15 -8
- data/Rakefile +61 -5
- data/lib/config/locales/en.yml +162 -56
- data/lib/mongoid/association/accessors.rb +89 -40
- data/lib/mongoid/association/bindable.rb +50 -23
- data/lib/mongoid/association/builders.rb +5 -12
- data/lib/mongoid/association/constrainable.rb +1 -5
- data/lib/mongoid/association/depending.rb +5 -17
- data/lib/mongoid/association/eager_loadable.rb +29 -10
- data/lib/mongoid/association/embedded/batchable.rb +64 -52
- data/lib/mongoid/association/embedded/cyclic.rb +3 -12
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -9
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +2 -5
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +4 -16
- data/lib/mongoid/association/embedded/embedded_in.rb +4 -26
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +4 -6
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +110 -92
- data/lib/mongoid/association/embedded/embeds_many.rb +4 -34
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +19 -8
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +50 -19
- data/lib/mongoid/association/embedded/embeds_one.rb +5 -31
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +27 -5
- data/lib/mongoid/association/many.rb +14 -27
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +6 -16
- data/lib/mongoid/association/nested/nested_buildable.rb +4 -13
- data/lib/mongoid/association/nested/one.rb +48 -23
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +2 -11
- data/lib/mongoid/association/options.rb +9 -42
- data/lib/mongoid/association/proxy.rb +22 -27
- data/lib/mongoid/association/referenced/auto_save.rb +6 -14
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +2 -8
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +5 -6
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +5 -19
- data/lib/mongoid/association/referenced/belongs_to.rb +11 -36
- data/lib/mongoid/association/referenced/counter_cache.rb +12 -25
- data/lib/mongoid/association/referenced/eager.rb +5 -26
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +81 -51
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +17 -41
- data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
- data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
- data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +438 -461
- data/lib/mongoid/association/referenced/has_many/proxy.rb +58 -84
- data/lib/mongoid/association/referenced/has_many.rb +15 -42
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +12 -5
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +7 -22
- data/lib/mongoid/association/referenced/has_one/proxy.rb +9 -16
- data/lib/mongoid/association/referenced/has_one.rb +12 -35
- data/lib/mongoid/association/referenced/syncable.rb +4 -21
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +4 -5
- data/lib/mongoid/association/relatable.rb +46 -71
- data/lib/mongoid/association.rb +5 -22
- data/lib/mongoid/atomic/modifiers.rb +7 -54
- data/lib/mongoid/atomic/paths/embedded/many.rb +19 -5
- data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
- data/lib/mongoid/atomic/paths/embedded.rb +0 -3
- data/lib/mongoid/atomic/paths/root.rb +0 -5
- data/lib/mongoid/atomic/paths.rb +0 -1
- data/lib/mongoid/atomic.rb +40 -47
- data/lib/mongoid/attributes/dynamic.rb +5 -22
- data/lib/mongoid/attributes/nested.rb +6 -11
- data/lib/mongoid/attributes/processing.rb +11 -21
- data/lib/mongoid/attributes/projector.rb +119 -0
- data/lib/mongoid/attributes/readonly.rb +3 -8
- data/lib/mongoid/attributes.rb +82 -88
- data/lib/mongoid/cacheable.rb +4 -9
- data/lib/mongoid/changeable.rb +148 -69
- data/lib/mongoid/clients/factory.rb +41 -17
- data/lib/mongoid/clients/options.rb +13 -14
- data/lib/mongoid/clients/sessions.rb +8 -11
- data/lib/mongoid/clients/storage_options.rb +7 -17
- data/lib/mongoid/clients/validators/storage.rb +3 -24
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +1 -10
- data/lib/mongoid/collection_configurable.rb +58 -0
- data/lib/mongoid/composable.rb +3 -7
- data/lib/mongoid/config/defaults.rb +60 -0
- data/lib/mongoid/config/environment.rb +28 -5
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/async_query_executor.rb +24 -0
- data/lib/mongoid/config/validators/client.rb +6 -23
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +1 -1
- data/lib/mongoid/config.rb +183 -39
- data/lib/mongoid/contextual/aggregable/memory.rb +37 -26
- data/lib/mongoid/contextual/aggregable/mongo.rb +29 -32
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +7 -27
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +8 -41
- data/lib/mongoid/contextual/map_reduce.rb +2 -33
- data/lib/mongoid/contextual/memory.rb +383 -79
- data/lib/mongoid/contextual/mongo/documents_loader.rb +177 -0
- data/lib/mongoid/contextual/mongo.rb +636 -283
- data/lib/mongoid/contextual/none.rb +262 -31
- data/lib/mongoid/contextual/queryable.rb +1 -4
- data/lib/mongoid/contextual.rb +14 -7
- data/lib/mongoid/copyable.rb +39 -16
- data/lib/mongoid/criteria/findable.rb +9 -19
- data/lib/mongoid/criteria/includable.rb +27 -31
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +10 -7
- data/lib/mongoid/criteria/modifiable.rb +2 -20
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +1 -2
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -15
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/array.rb +4 -40
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -7
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +3 -6
- data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -8
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -6
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +1 -40
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -20
- data/lib/mongoid/criteria/queryable/extensions/object.rb +3 -29
- data/lib/mongoid/criteria/queryable/extensions/range.rb +46 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +9 -18
- data/lib/mongoid/criteria/queryable/extensions/set.rb +1 -4
- data/lib/mongoid/criteria/queryable/extensions/string.rb +4 -31
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +4 -21
- data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -8
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +16 -6
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -5
- data/lib/mongoid/criteria/queryable/key.rb +6 -19
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +123 -38
- data/lib/mongoid/criteria/queryable/optional.rb +11 -62
- data/lib/mongoid/criteria/queryable/options.rb +2 -21
- data/lib/mongoid/criteria/queryable/pipeline.rb +1 -14
- data/lib/mongoid/criteria/queryable/selectable.rb +138 -125
- data/lib/mongoid/criteria/queryable/selector.rb +94 -30
- data/lib/mongoid/criteria/queryable/smash.rb +40 -18
- data/lib/mongoid/criteria/queryable/storable.rb +14 -10
- data/lib/mongoid/criteria/queryable.rb +11 -13
- data/lib/mongoid/criteria/scopable.rb +27 -21
- data/lib/mongoid/criteria/translator.rb +45 -0
- data/lib/mongoid/criteria.rb +88 -108
- data/lib/mongoid/deprecable.rb +36 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +149 -99
- data/lib/mongoid/equality.rb +32 -16
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/create_collection_failure.rb +33 -0
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +8 -12
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +33 -21
- data/lib/mongoid/errors/drop_collection_failure.rb +27 -0
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/immutable_attribute.rb +26 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_async_query_executor.rb +25 -0
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +1 -4
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +1 -4
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +24 -0
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +25 -0
- data/lib/mongoid/errors/invalid_expression_operator.rb +27 -0
- data/lib/mongoid/errors/invalid_field.rb +6 -7
- data/lib/mongoid/errors/invalid_field_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- data/lib/mongoid/errors/invalid_global_executor_concurrency.rb +22 -0
- data/lib/mongoid/errors/invalid_includes.rb +0 -3
- data/lib/mongoid/errors/invalid_index.rb +0 -3
- data/lib/mongoid/errors/invalid_options.rb +0 -3
- data/lib/mongoid/errors/invalid_path.rb +0 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
- data/lib/mongoid/errors/invalid_query.rb +40 -0
- data/lib/mongoid/errors/invalid_relation.rb +1 -8
- data/lib/mongoid/errors/invalid_relation_option.rb +1 -4
- data/lib/mongoid/errors/invalid_scope.rb +0 -3
- data/lib/mongoid/errors/invalid_session_use.rb +1 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -4
- data/lib/mongoid/errors/invalid_storage_parent.rb +2 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/inverse_not_found.rb +0 -3
- data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
- data/lib/mongoid/errors/mixed_relations.rb +0 -3
- data/lib/mongoid/errors/mongoid_error.rb +4 -13
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -4
- data/lib/mongoid/errors/no_client_config.rb +2 -5
- data/lib/mongoid/errors/no_client_database.rb +1 -4
- data/lib/mongoid/errors/no_client_hosts.rb +1 -4
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +1 -4
- data/lib/mongoid/errors/no_environment.rb +0 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
- data/lib/mongoid/errors/no_metadata.rb +0 -3
- data/lib/mongoid/errors/no_parent.rb +0 -3
- data/lib/mongoid/errors/readonly_attribute.rb +1 -4
- data/lib/mongoid/errors/readonly_document.rb +1 -6
- data/lib/mongoid/errors/scope_overwrite.rb +0 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -2
- data/lib/mongoid/errors/unknown_attribute.rb +1 -4
- data/lib/mongoid/errors/unknown_model.rb +0 -3
- data/lib/mongoid/errors/unsaved_document.rb +1 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
- data/lib/mongoid/errors/validations.rb +0 -1
- data/lib/mongoid/errors.rb +15 -4
- data/lib/mongoid/evolvable.rb +1 -4
- data/lib/mongoid/extensions/array.rb +12 -36
- data/lib/mongoid/extensions/big_decimal.rb +33 -21
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +8 -6
- data/lib/mongoid/extensions/date.rb +26 -29
- data/lib/mongoid/extensions/date_time.rb +1 -10
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +3 -8
- data/lib/mongoid/extensions/float.rb +7 -11
- data/lib/mongoid/extensions/hash.rb +19 -37
- data/lib/mongoid/extensions/integer.rb +7 -13
- data/lib/mongoid/extensions/module.rb +1 -4
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +11 -48
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +40 -20
- data/lib/mongoid/extensions/regexp.rb +12 -8
- data/lib/mongoid/extensions/set.rb +11 -11
- data/lib/mongoid/extensions/string.rb +12 -52
- data/lib/mongoid/extensions/symbol.rb +4 -22
- data/lib/mongoid/extensions/time.rb +28 -26
- data/lib/mongoid/extensions/time_with_zone.rb +14 -11
- data/lib/mongoid/extensions/true_class.rb +3 -8
- data/lib/mongoid/extensions.rb +17 -3
- data/lib/mongoid/factory.rb +80 -16
- data/lib/mongoid/fields/foreign_key.rb +11 -25
- data/lib/mongoid/fields/localized.rb +19 -15
- data/lib/mongoid/fields/standard.rb +17 -40
- data/lib/mongoid/fields/validators/macro.rb +25 -24
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +346 -75
- data/lib/mongoid/findable.rb +107 -31
- data/lib/mongoid/indexable/specification.rb +2 -17
- data/lib/mongoid/indexable/validators/options.rb +6 -9
- data/lib/mongoid/indexable.rb +3 -20
- data/lib/mongoid/inspectable.rb +2 -11
- data/lib/mongoid/interceptable.rb +79 -41
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +2 -155
- data/lib/mongoid/matcher/all.rb +22 -0
- data/lib/mongoid/matcher/and.rb +21 -0
- data/lib/mongoid/matcher/bits.rb +41 -0
- data/lib/mongoid/matcher/bits_all_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_all_set.rb +20 -0
- data/lib/mongoid/matcher/bits_any_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_any_set.rb +20 -0
- data/lib/mongoid/matcher/elem_match.rb +36 -0
- data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
- data/lib/mongoid/matcher/eq.rb +11 -0
- data/lib/mongoid/matcher/eq_impl.rb +67 -0
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +26 -0
- data/lib/mongoid/matcher/exists.rb +15 -0
- data/lib/mongoid/matcher/expression.rb +35 -0
- data/lib/mongoid/matcher/expression_operator.rb +19 -0
- data/lib/mongoid/matcher/field_expression.rb +62 -0
- data/lib/mongoid/matcher/field_operator.rb +54 -0
- data/lib/mongoid/matcher/gt.rb +17 -0
- data/lib/mongoid/matcher/gte.rb +17 -0
- data/lib/mongoid/matcher/in.rb +25 -0
- data/lib/mongoid/matcher/lt.rb +17 -0
- data/lib/mongoid/matcher/lte.rb +17 -0
- data/lib/mongoid/matcher/mod.rb +17 -0
- data/lib/mongoid/matcher/ne.rb +16 -0
- data/lib/mongoid/matcher/nin.rb +11 -0
- data/lib/mongoid/matcher/nor.rb +25 -0
- data/lib/mongoid/matcher/not.rb +29 -0
- data/lib/mongoid/matcher/or.rb +21 -0
- data/lib/mongoid/matcher/regex.rb +41 -0
- data/lib/mongoid/matcher/size.rb +26 -0
- data/lib/mongoid/matcher/type.rb +99 -0
- data/lib/mongoid/matcher.rb +130 -0
- data/lib/mongoid/persistable/creatable.rb +20 -29
- data/lib/mongoid/persistable/deletable.rb +4 -22
- data/lib/mongoid/persistable/destroyable.rb +9 -10
- data/lib/mongoid/persistable/incrementable.rb +0 -5
- data/lib/mongoid/persistable/logical.rb +0 -5
- data/lib/mongoid/persistable/poppable.rb +0 -5
- data/lib/mongoid/persistable/pullable.rb +0 -7
- data/lib/mongoid/persistable/pushable.rb +4 -8
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +13 -8
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +2 -7
- data/lib/mongoid/persistable/updatable.rb +96 -29
- data/lib/mongoid/persistable/upsertable.rb +20 -8
- data/lib/mongoid/persistable.rb +6 -26
- data/lib/mongoid/persistence_context.rb +71 -43
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +16 -236
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +1 -2
- data/lib/mongoid/railties/database.rake +7 -2
- data/lib/mongoid/reloadable.rb +17 -20
- data/lib/mongoid/scopable.rb +32 -56
- data/lib/mongoid/selectable.rb +5 -17
- data/lib/mongoid/serializable.rb +11 -22
- data/lib/mongoid/shardable.rb +49 -16
- data/lib/mongoid/stateful.rb +57 -19
- data/lib/mongoid/stringified_symbol.rb +52 -0
- data/lib/mongoid/tasks/database.rake +12 -0
- data/lib/mongoid/tasks/database.rb +59 -11
- data/lib/mongoid/threaded/lifecycle.rb +5 -26
- data/lib/mongoid/threaded.rb +42 -67
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +1 -2
- data/lib/mongoid/timestamps/short.rb +0 -1
- data/lib/mongoid/timestamps/timeless.rb +0 -7
- data/lib/mongoid/timestamps/updated/short.rb +0 -1
- data/lib/mongoid/timestamps/updated.rb +2 -5
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +34 -13
- data/lib/mongoid/traversable.rb +181 -59
- data/lib/mongoid/utils.rb +22 -0
- data/lib/mongoid/validatable/associated.rb +1 -4
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +1 -4
- data/lib/mongoid/validatable/macros.rb +5 -14
- data/lib/mongoid/validatable/presence.rb +6 -13
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +26 -40
- data/lib/mongoid/validatable.rb +9 -27
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid/warnings.rb +44 -0
- data/lib/mongoid.rb +42 -18
- data/lib/rails/generators/mongoid/config/config_generator.rb +8 -2
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +12 -6
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +1 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/README.md +19 -4
- data/spec/config/mongoid.yml +16 -0
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +345 -0
- data/spec/integration/associations/belongs_to_spec.rb +18 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +163 -1
- data/spec/integration/associations/embeds_many_spec.rb +219 -0
- data/spec/integration/associations/embeds_one_spec.rb +41 -0
- data/spec/integration/associations/foreign_key_spec.rb +9 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
- data/spec/integration/associations/has_many_spec.rb +128 -0
- data/spec/integration/associations/has_one_spec.rb +272 -0
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +115 -0
- data/spec/integration/associations/reverse_population_spec.rb +0 -1
- data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +116 -0
- data/spec/integration/bson_regexp_raw_spec.rb +19 -0
- data/spec/integration/callbacks_models.rb +192 -0
- data/spec/integration/callbacks_spec.rb +584 -0
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +40 -0
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +43 -0
- data/spec/integration/criteria/range_spec.rb +359 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +391 -0
- data/spec/integration/discriminator_value_spec.rb +206 -0
- data/spec/integration/document_spec.rb +30 -1
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +3 -19
- data/spec/integration/{matchable_spec.rb → matcher_examples_spec.rb} +130 -45
- data/spec/integration/matcher_operator_data/all.yml +140 -0
- data/spec/integration/matcher_operator_data/and.yml +93 -0
- data/spec/integration/matcher_operator_data/bits_all_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_all_set.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_set.yml +159 -0
- data/spec/integration/matcher_operator_data/comment.yml +22 -0
- data/spec/integration/matcher_operator_data/elem_match.yml +409 -0
- data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
- data/spec/integration/matcher_operator_data/eq.yml +191 -0
- data/spec/integration/matcher_operator_data/exists.yml +213 -0
- data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
- data/spec/integration/matcher_operator_data/gt.yml +132 -0
- data/spec/integration/matcher_operator_data/gt_types.yml +63 -0
- data/spec/integration/matcher_operator_data/gte.yml +132 -0
- data/spec/integration/matcher_operator_data/gte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/implicit.yml +331 -0
- data/spec/integration/matcher_operator_data/implicit_traversal.yml +112 -0
- data/spec/integration/matcher_operator_data/in.yml +210 -0
- data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
- data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
- data/spec/integration/matcher_operator_data/lt.yml +132 -0
- data/spec/integration/matcher_operator_data/lt_types.yml +15 -0
- data/spec/integration/matcher_operator_data/lte.yml +132 -0
- data/spec/integration/matcher_operator_data/lte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/mod.yml +55 -0
- data/spec/integration/matcher_operator_data/multiple.yml +29 -0
- data/spec/integration/matcher_operator_data/ne.yml +150 -0
- data/spec/integration/matcher_operator_data/ne_types.yml +15 -0
- data/spec/integration/matcher_operator_data/nin.yml +114 -0
- data/spec/integration/matcher_operator_data/nor.yml +126 -0
- data/spec/integration/matcher_operator_data/not.yml +196 -0
- data/spec/integration/matcher_operator_data/or.yml +137 -0
- data/spec/integration/matcher_operator_data/regex.yml +174 -0
- data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
- data/spec/integration/matcher_operator_data/size.yml +174 -0
- data/spec/integration/matcher_operator_data/type.yml +70 -0
- data/spec/integration/matcher_operator_data/type_array.yml +16 -0
- data/spec/integration/matcher_operator_data/type_binary.yml +18 -0
- data/spec/integration/matcher_operator_data/type_boolean.yml +39 -0
- data/spec/integration/matcher_operator_data/type_code.yml +26 -0
- data/spec/integration/matcher_operator_data/type_code_with_scope.yml +26 -0
- data/spec/integration/matcher_operator_data/type_date.yml +39 -0
- data/spec/integration/matcher_operator_data/type_db_pointer.yml +19 -0
- data/spec/integration/matcher_operator_data/type_decimal.yml +41 -0
- data/spec/integration/matcher_operator_data/type_double.yml +15 -0
- data/spec/integration/matcher_operator_data/type_int32.yml +33 -0
- data/spec/integration/matcher_operator_data/type_int64.yml +33 -0
- data/spec/integration/matcher_operator_data/type_max_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_min_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_null.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object_id.yml +25 -0
- data/spec/integration/matcher_operator_data/type_regex.yml +44 -0
- data/spec/integration/matcher_operator_data/type_string.yml +15 -0
- data/spec/integration/matcher_operator_data/type_symbol.yml +32 -0
- data/spec/integration/matcher_operator_data/type_timestamp.yml +25 -0
- data/spec/integration/matcher_operator_data/type_undefined.yml +17 -0
- data/spec/integration/matcher_operator_spec.rb +122 -0
- data/spec/integration/matcher_spec.rb +283 -0
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/integration/server_query_spec.rb +141 -0
- data/spec/integration/shardable_spec.rb +20 -5
- data/spec/integration/stringified_symbol_field_spec.rb +203 -0
- data/spec/lite_spec_helper.rb +25 -9
- data/spec/mongoid/association/accessors_spec.rb +282 -78
- data/spec/mongoid/association/auto_save_spec.rb +72 -34
- data/spec/mongoid/association/builders_spec.rb +1 -2
- data/spec/mongoid/association/constrainable_spec.rb +0 -1
- data/spec/mongoid/association/counter_cache_spec.rb +33 -34
- data/spec/mongoid/association/depending_spec.rb +429 -339
- data/spec/mongoid/association/eager_spec.rb +6 -6
- data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
- data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -2
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +150 -14
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +704 -198
- data/spec/mongoid/association/embedded/embeds_many_models.rb +194 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +78 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +36 -24
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +20 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -3
- data/spec/mongoid/association/macros_spec.rb +9 -10
- data/spec/mongoid/association/nested/many_spec.rb +0 -1
- data/spec/mongoid/association/nested/one_spec.rb +16 -13
- data/spec/mongoid/association/options_spec.rb +0 -1
- data/spec/mongoid/association/polymorphic_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -2
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +109 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +112 -59
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +20 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +26 -22
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +1 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +523 -372
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +43 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +56 -3
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +1 -2
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +130 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +413 -130
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +857 -503
- data/spec/mongoid/association/referenced/has_many_models.rb +59 -2
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +46 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +53 -10
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +133 -28
- data/spec/mongoid/association/referenced/has_one_models.rb +63 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +22 -2
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +46 -33
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +47 -1
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
- data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
- data/spec/mongoid/atomic/paths_spec.rb +91 -13
- data/spec/mongoid/atomic_spec.rb +51 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +147 -79
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_data/embedded.yml +105 -0
- data/spec/mongoid/attributes/projector_data/fields.yml +93 -0
- data/spec/mongoid/attributes/projector_spec.rb +40 -0
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +888 -62
- data/spec/mongoid/cacheable_spec.rb +4 -5
- data/spec/mongoid/changeable_spec.rb +464 -73
- data/spec/mongoid/clients/factory_spec.rb +91 -9
- data/spec/mongoid/clients/options_spec.rb +27 -19
- data/spec/mongoid/clients/sessions_spec.rb +27 -67
- data/spec/mongoid/clients/transactions_spec.rb +69 -35
- data/spec/mongoid/clients_spec.rb +187 -24
- data/spec/mongoid/collection_configurable_spec.rb +158 -0
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/defaults_spec.rb +160 -0
- data/spec/mongoid/config/environment_spec.rb +124 -9
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +465 -1
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +431 -154
- 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/aggregable/mongo_spec.rb +120 -21
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +148 -86
- data/spec/mongoid/contextual/geo_near_spec.rb +28 -20
- data/spec/mongoid/contextual/map_reduce_spec.rb +20 -20
- data/spec/mongoid/contextual/memory_spec.rb +1826 -304
- data/spec/mongoid/contextual/mongo/documents_loader_spec.rb +187 -0
- data/spec/mongoid/contextual/mongo_spec.rb +3501 -1272
- data/spec/mongoid/contextual/none_spec.rb +78 -68
- data/spec/mongoid/copyable_spec.rb +657 -37
- data/spec/mongoid/copyable_spec_models.rb +28 -1
- data/spec/mongoid/criteria/findable_spec.rb +109 -234
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +18 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +37 -38
- data/spec/mongoid/criteria/options_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -74
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -20
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -27
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -16
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -8
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +7 -8
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +5 -71
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -60
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +30 -8
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +39 -2
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +143 -13
- data/spec/mongoid/criteria/queryable/optional_spec.rb +16 -486
- data/spec/mongoid/criteria/queryable/options_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +1186 -195
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +38 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +307 -705
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +589 -0
- data/spec/mongoid/criteria/queryable/selector_spec.rb +15 -4
- data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
- data/spec/mongoid/criteria/scopable_spec.rb +127 -1
- data/spec/mongoid/criteria/translator_spec.rb +132 -0
- data/spec/mongoid/criteria_projection_spec.rb +406 -0
- data/spec/mongoid/criteria_spec.rb +1267 -1739
- data/spec/mongoid/document_fields_spec.rb +179 -5
- data/spec/mongoid/document_persistence_context_spec.rb +32 -0
- data/spec/mongoid/document_query_spec.rb +51 -1
- data/spec/mongoid/document_spec.rb +151 -88
- data/spec/mongoid/equality_spec.rb +142 -42
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
- data/spec/mongoid/errors/callback_spec.rb +0 -1
- data/spec/mongoid/errors/delete_restriction_spec.rb +2 -3
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +76 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/{eager_load_spec.rb → invalid_config_file_spec.rb} +5 -6
- data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_field_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
- data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
- data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
- data/spec/mongoid/errors/mongoid_error_spec.rb +22 -9
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +2 -3
- data/spec/mongoid/errors/no_client_database_spec.rb +3 -4
- data/spec/mongoid/errors/no_client_hosts_spec.rb +3 -4
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +3 -4
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
- data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
- data/spec/mongoid/errors/no_parent_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
- data/spec/mongoid/errors/readonly_document_spec.rb +2 -3
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -2
- data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
- data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
- data/spec/mongoid/errors/validations_spec.rb +0 -1
- data/spec/mongoid/extensions/array_spec.rb +16 -3
- data/spec/mongoid/extensions/big_decimal_spec.rb +712 -213
- data/spec/mongoid/extensions/binary_spec.rb +44 -10
- data/spec/mongoid/extensions/boolean_spec.rb +68 -83
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -4
- data/spec/mongoid/extensions/date_spec.rb +71 -2
- data/spec/mongoid/extensions/date_time_spec.rb +15 -10
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +1 -2
- data/spec/mongoid/extensions/float_spec.rb +53 -75
- data/spec/mongoid/extensions/hash_spec.rb +30 -1
- data/spec/mongoid/extensions/integer_spec.rb +50 -65
- data/spec/mongoid/extensions/module_spec.rb +0 -1
- data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
- data/spec/mongoid/extensions/object_id_spec.rb +0 -1
- data/spec/mongoid/extensions/object_spec.rb +0 -1
- data/spec/mongoid/extensions/range_spec.rb +255 -55
- data/spec/mongoid/extensions/regexp_spec.rb +58 -34
- data/spec/mongoid/extensions/set_spec.rb +106 -1
- data/spec/mongoid/extensions/string_spec.rb +58 -31
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +84 -0
- data/spec/mongoid/extensions/symbol_spec.rb +18 -26
- data/spec/mongoid/extensions/time_spec.rb +639 -107
- data/spec/mongoid/extensions/time_with_zone_spec.rb +24 -84
- data/spec/mongoid/extensions/true_class_spec.rb +1 -2
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +323 -30
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +84 -42
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +855 -118
- data/spec/mongoid/findable_spec.rb +518 -65
- data/spec/mongoid/indexable/specification_spec.rb +2 -3
- data/spec/mongoid/indexable_spec.rb +85 -33
- data/spec/mongoid/inspectable_spec.rb +37 -3
- data/spec/mongoid/interceptable_spec.rb +702 -104
- data/spec/mongoid/interceptable_spec_models.rb +235 -4
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml +104 -0
- data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +239 -0
- data/spec/mongoid/matcher/extract_attribute_spec.rb +36 -0
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +112 -30
- data/spec/mongoid/persistable/deletable_spec.rb +298 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +226 -19
- data/spec/mongoid/persistable/incrementable_spec.rb +45 -9
- data/spec/mongoid/persistable/logical_spec.rb +41 -5
- data/spec/mongoid/persistable/poppable_spec.rb +40 -5
- data/spec/mongoid/persistable/pullable_spec.rb +80 -9
- data/spec/mongoid/persistable/pushable_spec.rb +80 -9
- data/spec/mongoid/persistable/renamable_spec.rb +39 -4
- data/spec/mongoid/persistable/savable_spec.rb +282 -26
- data/spec/mongoid/persistable/settable_spec.rb +76 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +40 -5
- data/spec/mongoid/persistable/updatable_spec.rb +61 -50
- data/spec/mongoid/persistable/upsertable_spec.rb +91 -4
- data/spec/mongoid/persistable_spec.rb +3 -4
- data/spec/mongoid/persistence_context_spec.rb +57 -59
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +7 -5
- data/spec/mongoid/query_cache_spec.rb +424 -68
- data/spec/mongoid/relations/proxy_spec.rb +7 -8
- data/spec/mongoid/reloadable_spec.rb +355 -27
- data/spec/mongoid/scopable_spec.rb +191 -39
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +35 -39
- data/spec/mongoid/shardable_models.rb +15 -1
- data/spec/mongoid/shardable_spec.rb +181 -32
- data/spec/mongoid/stateful_spec.rb +151 -10
- data/spec/mongoid/tasks/database_rake_spec.rb +87 -14
- data/spec/mongoid/tasks/database_spec.rb +128 -2
- data/spec/mongoid/threaded_spec.rb +2 -3
- data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
- data/spec/mongoid/timestamps/created_spec.rb +1 -2
- data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
- data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
- data/spec/mongoid/timestamps/updated_spec.rb +3 -4
- data/spec/mongoid/timestamps_spec.rb +398 -11
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +525 -36
- data/spec/mongoid/touchable_spec_models.rb +59 -0
- data/spec/mongoid/traversable_spec.rb +1143 -2
- data/spec/mongoid/validatable/associated_spec.rb +0 -1
- data/spec/mongoid/validatable/format_spec.rb +0 -1
- data/spec/mongoid/validatable/length_spec.rb +0 -1
- data/spec/mongoid/validatable/numericality_spec.rb +0 -1
- data/spec/mongoid/validatable/presence_spec.rb +26 -23
- data/spec/mongoid/validatable/uniqueness_spec.rb +125 -99
- data/spec/mongoid/validatable_spec.rb +3 -4
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +35 -10
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -3
- data/spec/rails/mongoid_spec.rb +4 -17
- data/spec/shared/LICENSE +20 -0
- data/spec/shared/bin/get-mongodb-download-url +17 -0
- data/spec/shared/bin/s3-copy +45 -0
- data/spec/shared/bin/s3-upload +69 -0
- data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
- data/spec/shared/lib/mrss/cluster_config.rb +231 -0
- data/spec/shared/lib/mrss/constraints.rb +378 -0
- data/spec/shared/lib/mrss/docker_runner.rb +298 -0
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +210 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +238 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +113 -0
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/lib/mrss/spec_organizer.rb +179 -0
- data/spec/shared/lib/mrss/utils.rb +37 -0
- data/spec/shared/share/Dockerfile.erb +321 -0
- data/spec/shared/share/haproxy-1.conf +16 -0
- data/spec/shared/share/haproxy-2.conf +17 -0
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +74 -0
- data/spec/shared/shlib/server.sh +416 -0
- data/spec/shared/shlib/set_env.sh +169 -0
- data/spec/spec_helper.rb +24 -54
- data/spec/support/authorization.rb +0 -1
- data/spec/support/client_registry.rb +9 -0
- data/spec/support/constraints.rb +34 -197
- data/spec/support/expectations.rb +0 -1
- data/spec/support/helpers.rb +1 -1
- data/spec/support/immutable_ids.rb +118 -0
- data/spec/support/macros.rb +109 -1
- data/spec/{app → support}/models/account.rb +1 -2
- data/spec/{app → support}/models/acolyte.rb +0 -1
- data/spec/{app → support}/models/actor.rb +1 -2
- data/spec/{app → support}/models/actress.rb +0 -1
- data/spec/{app → support}/models/address.rb +4 -1
- data/spec/{app → support}/models/address_component.rb +0 -1
- data/spec/{app → support}/models/address_number.rb +0 -1
- data/spec/{app → support}/models/agency.rb +0 -1
- data/spec/{app → support}/models/agent.rb +0 -1
- data/spec/{app → support}/models/album.rb +0 -1
- data/spec/{app → support}/models/alert.rb +0 -1
- data/spec/{app → support}/models/animal.rb +0 -1
- data/spec/{app → support}/models/answer.rb +0 -1
- data/spec/{app → support}/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +9 -0
- data/spec/{app → support}/models/array_field.rb +0 -1
- data/spec/{app → support}/models/article.rb +0 -1
- data/spec/{app → support}/models/artist.rb +2 -2
- data/spec/{app → support}/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/{app → support}/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +25 -0
- data/spec/{app → support}/models/author.rb +0 -1
- data/spec/{app → support}/models/baby.rb +0 -1
- data/spec/{app → support}/models/band.rb +8 -1
- data/spec/{app → support}/models/bar.rb +0 -1
- data/spec/{app → support}/models/basic.rb +0 -1
- data/spec/{app → support}/models/bed.rb +0 -1
- data/spec/{app → support}/models/big_palette.rb +0 -1
- data/spec/{app → support}/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +7 -0
- data/spec/{app → support}/models/bomb.rb +0 -1
- data/spec/{app → support}/models/book.rb +1 -1
- data/spec/{app → support}/models/breed.rb +0 -1
- data/spec/{app → support}/models/browser.rb +1 -2
- data/spec/{app → support}/models/building.rb +2 -1
- data/spec/{app → support}/models/building_address.rb +0 -1
- data/spec/{app → support}/models/bus.rb +0 -1
- data/spec/{app → support}/models/business.rb +0 -1
- data/spec/{app → support}/models/callback_test.rb +0 -1
- data/spec/{app → support}/models/canvas.rb +1 -2
- data/spec/{app → support}/models/car.rb +0 -1
- data/spec/{app → support}/models/cat.rb +0 -1
- data/spec/support/models/catalog.rb +24 -0
- data/spec/{app → support}/models/category.rb +0 -1
- data/spec/{app → support}/models/child.rb +0 -1
- data/spec/{app → support}/models/child_doc.rb +3 -4
- data/spec/{app → support}/models/church.rb +0 -1
- data/spec/{app → support}/models/circle.rb +0 -1
- data/spec/{app → support}/models/circuit.rb +0 -1
- data/spec/{app → support}/models/circus.rb +3 -1
- data/spec/{app → support}/models/code.rb +2 -1
- data/spec/{app → support}/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +3 -0
- data/spec/{app → support}/models/comment.rb +0 -1
- data/spec/{app → support}/models/company.rb +0 -1
- data/spec/{app → support}/models/consumption_period.rb +0 -1
- data/spec/{app → support}/models/contextable_item.rb +0 -1
- data/spec/{app → support}/models/contractor.rb +0 -1
- data/spec/{app → support}/models/cookie.rb +0 -1
- data/spec/{app → support}/models/country_code.rb +2 -1
- data/spec/{app → support}/models/courier_job.rb +0 -1
- data/spec/support/models/cover.rb +10 -0
- data/spec/support/models/crate.rb +12 -0
- data/spec/support/models/customer.rb +10 -0
- data/spec/support/models/customer_address.rb +11 -0
- data/spec/support/models/deed.rb +7 -0
- data/spec/{app → support}/models/definition.rb +0 -1
- data/spec/{app → support}/models/delegating_patient.rb +0 -1
- data/spec/{app → support}/models/description.rb +0 -1
- data/spec/{app → support}/models/dictionary.rb +6 -1
- data/spec/{app → support}/models/division.rb +0 -1
- data/spec/{app → support}/models/doctor.rb +0 -1
- data/spec/{app → support}/models/dog.rb +0 -1
- data/spec/{app → support}/models/dokument.rb +0 -1
- data/spec/{app → support}/models/draft.rb +0 -1
- data/spec/{app → support}/models/dragon.rb +0 -1
- data/spec/{app → support}/models/driver.rb +1 -2
- data/spec/{app → support}/models/drug.rb +0 -1
- data/spec/{app → support}/models/dungeon.rb +0 -1
- data/spec/{app → support}/models/edit.rb +0 -1
- data/spec/{app → support}/models/email.rb +0 -1
- data/spec/{app → support}/models/employer.rb +0 -1
- data/spec/{app → support}/models/entry.rb +0 -1
- data/spec/{app → support}/models/eraser.rb +0 -1
- data/spec/{app → support}/models/even.rb +0 -1
- data/spec/{app → support}/models/event.rb +0 -1
- data/spec/{app → support}/models/exhibition.rb +0 -1
- data/spec/{app → support}/models/exhibitor.rb +0 -1
- data/spec/{app → support}/models/explosion.rb +0 -1
- data/spec/{app → support}/models/eye.rb +0 -1
- data/spec/{app → support}/models/eye_bowl.rb +0 -1
- data/spec/{app → support}/models/face.rb +0 -1
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/{app → support}/models/favorite.rb +0 -1
- data/spec/{app → support}/models/filesystem.rb +0 -1
- data/spec/{app → support}/models/fire_hydrant.rb +0 -1
- data/spec/{app → support}/models/firefox.rb +0 -1
- data/spec/{app → support}/models/fish.rb +0 -1
- data/spec/{app → support}/models/folder.rb +0 -1
- data/spec/{app → support}/models/folder_item.rb +0 -1
- data/spec/{app → support}/models/fruits.rb +0 -1
- data/spec/{app → support}/models/game.rb +0 -1
- data/spec/{app → support}/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +4 -0
- data/spec/support/models/hole.rb +12 -0
- data/spec/{app → support}/models/home.rb +0 -1
- data/spec/{app → support}/models/house.rb +0 -1
- data/spec/{app → support}/models/html_writer.rb +0 -1
- data/spec/{app → support}/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +7 -0
- data/spec/{app → support}/models/image.rb +0 -1
- data/spec/{app → support}/models/implant.rb +9 -1
- data/spec/support/models/instrument.rb +8 -0
- data/spec/{app → support}/models/item.rb +1 -2
- data/spec/{app → support}/models/jar.rb +0 -1
- data/spec/{app → support}/models/kaleidoscope.rb +0 -1
- data/spec/{app → support}/models/kangaroo.rb +0 -1
- data/spec/{app → support}/models/label.rb +4 -2
- data/spec/{app → support}/models/language.rb +0 -1
- data/spec/{app → support}/models/lat_lng.rb +0 -1
- data/spec/{app → support}/models/league.rb +0 -1
- data/spec/{app → support}/models/learner.rb +0 -1
- data/spec/{app → support}/models/line_item.rb +0 -1
- data/spec/{app → support}/models/location.rb +0 -1
- data/spec/{app → support}/models/login.rb +0 -1
- data/spec/{app → support}/models/manufacturer.rb +0 -1
- data/spec/{app → support}/models/meat.rb +0 -1
- data/spec/{app → support}/models/membership.rb +1 -1
- data/spec/{app → support}/models/message.rb +0 -1
- data/spec/{app → support}/models/minim.rb +0 -1
- data/spec/{app → support}/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +24 -0
- data/spec/{app → support}/models/movie.rb +0 -1
- data/spec/{app → support}/models/my_hash.rb +0 -1
- data/spec/{app → support}/models/name.rb +0 -1
- data/spec/{app → support}/models/name_only.rb +0 -1
- data/spec/{app → support}/models/node.rb +0 -1
- data/spec/{app → support}/models/note.rb +0 -1
- data/spec/support/models/nut.rb +7 -0
- data/spec/{app → support}/models/odd.rb +0 -1
- data/spec/support/models/order.rb +12 -0
- data/spec/{app → support}/models/ordered_post.rb +1 -2
- data/spec/{app → support}/models/ordered_preference.rb +0 -1
- data/spec/{app → support}/models/oscar.rb +0 -1
- data/spec/{app → support}/models/other_owner_object.rb +0 -1
- data/spec/{app → support}/models/override.rb +0 -1
- data/spec/{app → support}/models/ownable.rb +0 -1
- data/spec/{app → support}/models/owner.rb +2 -1
- data/spec/{app → support}/models/pack.rb +0 -1
- data/spec/{app → support}/models/page.rb +0 -1
- data/spec/{app → support}/models/page_question.rb +0 -1
- data/spec/{app → support}/models/palette.rb +1 -2
- data/spec/{app → support}/models/parent.rb +0 -1
- data/spec/{app → support}/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +22 -0
- data/spec/{app → support}/models/patient.rb +0 -1
- data/spec/{app → support}/models/pdf_writer.rb +0 -1
- data/spec/{app → support}/models/pencil.rb +0 -1
- data/spec/{app → support}/models/person.rb +20 -2
- data/spec/{app → support}/models/pet.rb +0 -1
- data/spec/{app → support}/models/pet_owner.rb +0 -1
- data/spec/{app → support}/models/phone.rb +3 -2
- data/spec/support/models/piano.rb +4 -0
- data/spec/{app → support}/models/pizza.rb +0 -1
- data/spec/{app → support}/models/player.rb +2 -1
- data/spec/{app → support}/models/post.rb +0 -1
- data/spec/{app → support}/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +25 -0
- data/spec/{app → support}/models/preference.rb +0 -1
- data/spec/{app → support}/models/princess.rb +0 -1
- data/spec/{app → support}/models/product.rb +1 -1
- data/spec/support/models/profile.rb +17 -0
- data/spec/{app → support}/models/pronunciation.rb +0 -1
- data/spec/{app → support}/models/pub.rb +0 -1
- data/spec/{app → support}/models/publication/encyclopedia.rb +0 -1
- data/spec/{app → support}/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +4 -0
- data/spec/{app → support}/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/{app → support}/models/question.rb +0 -1
- data/spec/{app → support}/models/quiz.rb +0 -1
- data/spec/{app → support}/models/rating.rb +0 -1
- data/spec/{app → support}/models/record.rb +0 -1
- data/spec/{app → support}/models/registry.rb +1 -1
- data/spec/{app → support}/models/role.rb +0 -1
- data/spec/{app → support}/models/root_category.rb +0 -1
- data/spec/{app → support}/models/sandwich.rb +0 -1
- data/spec/{app → support}/models/scheduler.rb +0 -1
- data/spec/support/models/school.rb +14 -0
- data/spec/{app/models/profile.rb → support/models/scribe.rb} +2 -3
- data/spec/support/models/sealer.rb +7 -0
- data/spec/support/models/seat.rb +24 -0
- data/spec/{app → support}/models/seo.rb +0 -1
- data/spec/{app → support}/models/series.rb +1 -1
- data/spec/{app → support}/models/server.rb +0 -1
- data/spec/{app → support}/models/service.rb +0 -1
- data/spec/{app → support}/models/shape.rb +2 -3
- data/spec/{app → support}/models/shelf.rb +0 -1
- data/spec/support/models/shield.rb +18 -0
- data/spec/{app → support}/models/shipment_address.rb +0 -1
- data/spec/{app → support}/models/shipping_container.rb +0 -1
- data/spec/{app → support}/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +11 -0
- data/spec/{app → support}/models/shop.rb +0 -1
- data/spec/{app → support}/models/short_agent.rb +0 -1
- data/spec/{app → support}/models/short_quiz.rb +0 -1
- data/spec/{app → support}/models/simple.rb +0 -1
- data/spec/{app → support}/models/slave.rb +0 -1
- data/spec/{app → support}/models/song.rb +0 -1
- data/spec/{app → support}/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +7 -0
- data/spec/{app → support}/models/square.rb +0 -1
- data/spec/{app → support}/models/staff.rb +0 -1
- data/spec/{app → support}/models/store_as_dup_test1.rb +0 -1
- data/spec/{app → support}/models/store_as_dup_test2.rb +0 -1
- data/spec/{app → support}/models/store_as_dup_test3.rb +0 -1
- data/spec/{app → support}/models/store_as_dup_test4.rb +0 -1
- data/spec/{app → support}/models/strategy.rb +0 -1
- data/spec/support/models/student.rb +14 -0
- data/spec/{app → support}/models/sub_item.rb +0 -1
- data/spec/{app → support}/models/subscription.rb +0 -1
- data/spec/{app → support}/models/survey.rb +0 -1
- data/spec/{app → support}/models/symptom.rb +0 -1
- data/spec/support/models/system_role.rb +7 -0
- data/spec/{app → support}/models/tag.rb +0 -1
- data/spec/{app → support}/models/target.rb +0 -1
- data/spec/{app → support}/models/template.rb +0 -1
- data/spec/{app → support}/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +7 -0
- data/spec/{app → support}/models/title.rb +0 -1
- data/spec/{app → support}/models/tool.rb +2 -3
- data/spec/{app → support}/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +9 -0
- data/spec/{app → support}/models/track.rb +0 -1
- data/spec/{app → support}/models/translation.rb +0 -1
- data/spec/{app → support}/models/tree.rb +0 -1
- data/spec/{app → support}/models/truck.rb +2 -1
- data/spec/{app → support}/models/updatable.rb +0 -1
- data/spec/{app → support}/models/user.rb +0 -1
- data/spec/{app → support}/models/user_account.rb +0 -1
- data/spec/{app → support}/models/validation_callback.rb +0 -1
- data/spec/{app → support}/models/vehicle.rb +7 -3
- data/spec/{app → support}/models/version.rb +0 -1
- data/spec/{app → support}/models/vertex.rb +0 -1
- data/spec/{app → support}/models/vet_visit.rb +0 -1
- data/spec/{app → support}/models/video.rb +0 -1
- data/spec/{app → support}/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +7 -0
- data/spec/support/models/weapon.rb +25 -0
- data/spec/{app → support}/models/wiki_page.rb +1 -1
- data/spec/{app → support}/models/word.rb +0 -1
- data/spec/{app → support}/models/word_origin.rb +0 -1
- data/spec/{app → support}/models/writer.rb +2 -3
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +0 -1
- data/spec/support/spec_config.rb +28 -6
- data.tar.gz.sig +0 -0
- metadata +1216 -799
- metadata.gz.sig +0 -0
- data/lib/mongoid/errors/eager_load.rb +0 -26
- data/lib/mongoid/errors/invalid_value.rb +0 -18
- data/lib/mongoid/matchable/all.rb +0 -30
- data/lib/mongoid/matchable/and.rb +0 -32
- data/lib/mongoid/matchable/default.rb +0 -121
- data/lib/mongoid/matchable/elem_match.rb +0 -36
- data/lib/mongoid/matchable/eq.rb +0 -23
- data/lib/mongoid/matchable/exists.rb +0 -25
- data/lib/mongoid/matchable/gt.rb +0 -25
- data/lib/mongoid/matchable/gte.rb +0 -25
- data/lib/mongoid/matchable/in.rb +0 -26
- data/lib/mongoid/matchable/lt.rb +0 -25
- data/lib/mongoid/matchable/lte.rb +0 -25
- data/lib/mongoid/matchable/ne.rb +0 -23
- data/lib/mongoid/matchable/nin.rb +0 -24
- data/lib/mongoid/matchable/nor.rb +0 -38
- data/lib/mongoid/matchable/or.rb +0 -35
- data/lib/mongoid/matchable/regexp.rb +0 -30
- data/lib/mongoid/matchable/size.rb +0 -23
- data/lib/support/ruby_version.rb +0 -29
- data/spec/app/models/augmentation.rb +0 -14
- data/spec/app/models/coding.rb +0 -4
- data/spec/app/models/passport.rb +0 -8
- data/spec/app/models/powerup.rb +0 -14
- data/spec/app/models/publication.rb +0 -5
- data/spec/app/models/weapon.rb +0 -14
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -61
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -61
- data/spec/mongoid/matchable/all_spec.rb +0 -34
- data/spec/mongoid/matchable/and_spec.rb +0 -190
- data/spec/mongoid/matchable/default_spec.rb +0 -140
- data/spec/mongoid/matchable/elem_match_spec.rb +0 -109
- data/spec/mongoid/matchable/eq_spec.rb +0 -49
- data/spec/mongoid/matchable/exists_spec.rb +0 -60
- data/spec/mongoid/matchable/gt_spec.rb +0 -89
- data/spec/mongoid/matchable/gte_spec.rb +0 -87
- data/spec/mongoid/matchable/in_spec.rb +0 -52
- data/spec/mongoid/matchable/lt_spec.rb +0 -88
- data/spec/mongoid/matchable/lte_spec.rb +0 -88
- data/spec/mongoid/matchable/ne_spec.rb +0 -49
- data/spec/mongoid/matchable/nin_spec.rb +0 -51
- data/spec/mongoid/matchable/nor_spec.rb +0 -210
- data/spec/mongoid/matchable/or_spec.rb +0 -134
- data/spec/mongoid/matchable/regexp_spec.rb +0 -62
- data/spec/mongoid/matchable/size_spec.rb +0 -28
- data/spec/mongoid/matchable_spec.rb +0 -856
- data/spec/support/cluster_config.rb +0 -158
- data/spec/support/lite_constraints.rb +0 -22
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "spec_helper"
|
|
5
4
|
|
|
@@ -23,7 +22,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
23
22
|
|
|
24
23
|
before do
|
|
25
24
|
Dictionary.with(collection: "dicts") do |klass|
|
|
26
|
-
klass.create(name: "websters")
|
|
25
|
+
klass.create!(name: "websters")
|
|
27
26
|
end
|
|
28
27
|
end
|
|
29
28
|
|
|
@@ -81,7 +80,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
81
80
|
context "when the attribute id is unique" do
|
|
82
81
|
|
|
83
82
|
let(:dictionary) do
|
|
84
|
-
Dictionary.create
|
|
83
|
+
Dictionary.create!
|
|
85
84
|
end
|
|
86
85
|
|
|
87
86
|
let(:word) do
|
|
@@ -121,7 +120,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
121
120
|
it "adds the uniqueness error to the aliased field name" do
|
|
122
121
|
dictionary.valid?
|
|
123
122
|
expect(dictionary.errors).to have_key(:language)
|
|
124
|
-
expect(dictionary.errors[:language]).to eq([ "
|
|
123
|
+
expect(dictionary.errors[:language]).to eq([ "has already been taken" ])
|
|
125
124
|
end
|
|
126
125
|
end
|
|
127
126
|
|
|
@@ -138,7 +137,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
138
137
|
it "adds the uniqueness error to the underlying field name" do
|
|
139
138
|
dictionary.valid?
|
|
140
139
|
expect(dictionary.errors).to have_key(:l)
|
|
141
|
-
expect(dictionary.errors[:l]).to eq([ "
|
|
140
|
+
expect(dictionary.errors[:l]).to eq([ "has already been taken" ])
|
|
142
141
|
end
|
|
143
142
|
end
|
|
144
143
|
end
|
|
@@ -173,7 +172,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
173
172
|
context "when a document with no value exists in the database" do
|
|
174
173
|
|
|
175
174
|
before do
|
|
176
|
-
Dictionary.create
|
|
175
|
+
Dictionary.create!
|
|
177
176
|
end
|
|
178
177
|
|
|
179
178
|
let(:dictionary) do
|
|
@@ -191,7 +190,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
191
190
|
context "when single localization" do
|
|
192
191
|
|
|
193
192
|
before do
|
|
194
|
-
Dictionary.create(description: "english")
|
|
193
|
+
Dictionary.create!(description: "english")
|
|
195
194
|
end
|
|
196
195
|
|
|
197
196
|
let(:dictionary) do
|
|
@@ -227,7 +226,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
227
226
|
context "when single localization" do
|
|
228
227
|
|
|
229
228
|
before do
|
|
230
|
-
Dictionary.create(description: "english")
|
|
229
|
+
Dictionary.create!(description: "english")
|
|
231
230
|
end
|
|
232
231
|
|
|
233
232
|
let(:dictionary) do
|
|
@@ -240,7 +239,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
240
239
|
|
|
241
240
|
it "adds the uniqueness error" do
|
|
242
241
|
dictionary.valid?
|
|
243
|
-
expect(dictionary.errors[:description]).to eq([ "
|
|
242
|
+
expect(dictionary.errors[:description]).to eq([ "has already been taken" ])
|
|
244
243
|
end
|
|
245
244
|
end
|
|
246
245
|
|
|
@@ -261,7 +260,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
261
260
|
|
|
262
261
|
it "adds the uniqueness error" do
|
|
263
262
|
dictionary.valid?
|
|
264
|
-
expect(dictionary.errors[:description]).to eq([ "
|
|
263
|
+
expect(dictionary.errors[:description]).to eq([ "has already been taken" ])
|
|
265
264
|
end
|
|
266
265
|
end
|
|
267
266
|
end
|
|
@@ -283,7 +282,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
283
282
|
context "when there are no special characters" do
|
|
284
283
|
|
|
285
284
|
before do
|
|
286
|
-
Dictionary.create(description: "english")
|
|
285
|
+
Dictionary.create!(description: "english")
|
|
287
286
|
end
|
|
288
287
|
|
|
289
288
|
let(:dictionary) do
|
|
@@ -298,7 +297,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
298
297
|
context "when special characters exist" do
|
|
299
298
|
|
|
300
299
|
before do
|
|
301
|
-
Dictionary.create(description: "english")
|
|
300
|
+
Dictionary.create!(description: "english")
|
|
302
301
|
end
|
|
303
302
|
|
|
304
303
|
let(:dictionary) do
|
|
@@ -318,7 +317,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
318
317
|
context "when signle localization" do
|
|
319
318
|
|
|
320
319
|
before do
|
|
321
|
-
Dictionary.create(description: "english")
|
|
320
|
+
Dictionary.create!(description: "english")
|
|
322
321
|
end
|
|
323
322
|
|
|
324
323
|
let(:dictionary) do
|
|
@@ -331,7 +330,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
331
330
|
|
|
332
331
|
it "adds the uniqueness error" do
|
|
333
332
|
dictionary.valid?
|
|
334
|
-
expect(dictionary.errors[:description]).to eq([ "
|
|
333
|
+
expect(dictionary.errors[:description]).to eq([ "has already been taken" ])
|
|
335
334
|
end
|
|
336
335
|
end
|
|
337
336
|
|
|
@@ -352,7 +351,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
352
351
|
|
|
353
352
|
it "adds the uniqueness error" do
|
|
354
353
|
dictionary.valid?
|
|
355
|
-
expect(dictionary.errors[:description]).to eq([ "
|
|
354
|
+
expect(dictionary.errors[:description]).to eq([ "has already been taken" ])
|
|
356
355
|
end
|
|
357
356
|
end
|
|
358
357
|
end
|
|
@@ -360,7 +359,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
360
359
|
context "when the document is the match in the database" do
|
|
361
360
|
|
|
362
361
|
let!(:dictionary) do
|
|
363
|
-
Dictionary.create(description: "english")
|
|
362
|
+
Dictionary.create!(description: "english")
|
|
364
363
|
end
|
|
365
364
|
|
|
366
365
|
it "returns true" do
|
|
@@ -400,7 +399,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
400
399
|
|
|
401
400
|
it "adds the uniqueness error" do
|
|
402
401
|
dictionary.valid?
|
|
403
|
-
expect(dictionary.errors[:description]).to eq([ "
|
|
402
|
+
expect(dictionary.errors[:description]).to eq([ "has already been taken" ])
|
|
404
403
|
end
|
|
405
404
|
end
|
|
406
405
|
end
|
|
@@ -420,7 +419,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
420
419
|
context "when the attribute is unique" do
|
|
421
420
|
|
|
422
421
|
let!(:oxford) do
|
|
423
|
-
Dictionary.create(name: "Oxford")
|
|
422
|
+
Dictionary.create!(name: "Oxford")
|
|
424
423
|
end
|
|
425
424
|
|
|
426
425
|
let(:dictionary) do
|
|
@@ -448,7 +447,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
448
447
|
context "when the document is not the match" do
|
|
449
448
|
|
|
450
449
|
before do
|
|
451
|
-
Dictionary.create(name: "Oxford")
|
|
450
|
+
Dictionary.create!(name: "Oxford")
|
|
452
451
|
end
|
|
453
452
|
|
|
454
453
|
let!(:dictionary) do
|
|
@@ -461,7 +460,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
461
460
|
|
|
462
461
|
it "adds the uniqueness error" do
|
|
463
462
|
dictionary.valid?
|
|
464
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
463
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
465
464
|
end
|
|
466
465
|
end
|
|
467
466
|
|
|
@@ -470,7 +469,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
470
469
|
context "when the field has changed" do
|
|
471
470
|
|
|
472
471
|
let!(:dictionary) do
|
|
473
|
-
Dictionary.create(name: "Oxford")
|
|
472
|
+
Dictionary.create!(name: "Oxford")
|
|
474
473
|
end
|
|
475
474
|
|
|
476
475
|
it "returns true" do
|
|
@@ -522,7 +521,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
522
521
|
context "when the attribute is not unique" do
|
|
523
522
|
|
|
524
523
|
before do
|
|
525
|
-
Dictionary.create(name: "Oxford")
|
|
524
|
+
Dictionary.create!(name: "Oxford")
|
|
526
525
|
end
|
|
527
526
|
|
|
528
527
|
let(:dictionary) do
|
|
@@ -549,7 +548,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
549
548
|
context "when the attribute is unique" do
|
|
550
549
|
|
|
551
550
|
before do
|
|
552
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
551
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
553
552
|
end
|
|
554
553
|
|
|
555
554
|
let(:dictionary) do
|
|
@@ -564,7 +563,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
564
563
|
context "when the attribute is unique in the scope" do
|
|
565
564
|
|
|
566
565
|
before do
|
|
567
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
566
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
568
567
|
end
|
|
569
568
|
|
|
570
569
|
let(:dictionary) do
|
|
@@ -579,7 +578,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
579
578
|
context "when the attribute is not unique with no scope" do
|
|
580
579
|
|
|
581
580
|
before do
|
|
582
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
581
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
583
582
|
end
|
|
584
583
|
|
|
585
584
|
let(:dictionary) do
|
|
@@ -594,7 +593,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
594
593
|
context "when the attribute is not unique in another scope" do
|
|
595
594
|
|
|
596
595
|
before do
|
|
597
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
596
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
598
597
|
end
|
|
599
598
|
|
|
600
599
|
let(:dictionary) do
|
|
@@ -611,7 +610,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
611
610
|
context "when the document is not the match" do
|
|
612
611
|
|
|
613
612
|
before do
|
|
614
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
613
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
615
614
|
end
|
|
616
615
|
|
|
617
616
|
let(:dictionary) do
|
|
@@ -624,14 +623,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
624
623
|
|
|
625
624
|
it "adds the uniqueness errors" do
|
|
626
625
|
dictionary.valid?
|
|
627
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
626
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
628
627
|
end
|
|
629
628
|
end
|
|
630
629
|
|
|
631
630
|
context "when the document is the match in the database" do
|
|
632
631
|
|
|
633
632
|
let!(:dictionary) do
|
|
634
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
633
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
635
634
|
end
|
|
636
635
|
|
|
637
636
|
it "returns true" do
|
|
@@ -654,7 +653,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
654
653
|
context "when the attribute is unique" do
|
|
655
654
|
|
|
656
655
|
before do
|
|
657
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
656
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
658
657
|
end
|
|
659
658
|
|
|
660
659
|
let(:dictionary) do
|
|
@@ -669,7 +668,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
669
668
|
context "when the attribute is unique in the scope" do
|
|
670
669
|
|
|
671
670
|
before do
|
|
672
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
671
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
673
672
|
end
|
|
674
673
|
|
|
675
674
|
let(:dictionary) do
|
|
@@ -702,14 +701,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
702
701
|
|
|
703
702
|
it "should set an error for associated object not being unique" do
|
|
704
703
|
item.update_attributes(folder_id: personal_folder.id)
|
|
705
|
-
expect(item.errors.messages[:name].first).to eq("
|
|
704
|
+
expect(item.errors.messages[:name].first).to eq("has already been taken")
|
|
706
705
|
end
|
|
707
706
|
end
|
|
708
707
|
|
|
709
708
|
context "when the attribute is not unique with no scope" do
|
|
710
709
|
|
|
711
710
|
before do
|
|
712
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
711
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
713
712
|
end
|
|
714
713
|
|
|
715
714
|
let(:dictionary) do
|
|
@@ -724,7 +723,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
724
723
|
context "when the attribute is not unique in another scope" do
|
|
725
724
|
|
|
726
725
|
before do
|
|
727
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
726
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
728
727
|
end
|
|
729
728
|
|
|
730
729
|
let(:dictionary) do
|
|
@@ -741,7 +740,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
741
740
|
context "when the document is not the match" do
|
|
742
741
|
|
|
743
742
|
before do
|
|
744
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
743
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
745
744
|
end
|
|
746
745
|
|
|
747
746
|
let(:dictionary) do
|
|
@@ -754,14 +753,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
754
753
|
|
|
755
754
|
it "adds the uniqueness errors" do
|
|
756
755
|
dictionary.valid?
|
|
757
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
756
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
758
757
|
end
|
|
759
758
|
end
|
|
760
759
|
|
|
761
760
|
context "when the document is the match in the database" do
|
|
762
761
|
|
|
763
762
|
let!(:dictionary) do
|
|
764
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
763
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
765
764
|
end
|
|
766
765
|
|
|
767
766
|
it "returns true" do
|
|
@@ -772,7 +771,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
772
771
|
context "when one of the scopes is a time" do
|
|
773
772
|
|
|
774
773
|
before do
|
|
775
|
-
Dictionary.create(
|
|
774
|
+
Dictionary.create!(
|
|
776
775
|
name: "Oxford",
|
|
777
776
|
publisher: "Amazon",
|
|
778
777
|
published: 10.days.ago.to_time
|
|
@@ -793,7 +792,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
793
792
|
|
|
794
793
|
it "adds the uniqueness errors" do
|
|
795
794
|
dictionary.valid?
|
|
796
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
795
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
797
796
|
end
|
|
798
797
|
end
|
|
799
798
|
end
|
|
@@ -816,7 +815,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
816
815
|
|
|
817
816
|
expect do
|
|
818
817
|
Dictionary.create!(name: "French-English", year: 1960)
|
|
819
|
-
end.to raise_error(Mongoid::Errors::Validations, /Name
|
|
818
|
+
end.to raise_error(Mongoid::Errors::Validations, /Name has already been taken/)
|
|
820
819
|
|
|
821
820
|
expect(Dictionary.all.size).to eq(1)
|
|
822
821
|
end
|
|
@@ -856,7 +855,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
856
855
|
context "when the attribute is unique" do
|
|
857
856
|
|
|
858
857
|
before do
|
|
859
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
858
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
860
859
|
end
|
|
861
860
|
|
|
862
861
|
let(:dictionary) do
|
|
@@ -871,7 +870,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
871
870
|
context "when the attribute is unique in the scope" do
|
|
872
871
|
|
|
873
872
|
before do
|
|
874
|
-
Dictionary.create(
|
|
873
|
+
Dictionary.create!(
|
|
875
874
|
name: "Oxford",
|
|
876
875
|
publisher: "Amazon",
|
|
877
876
|
year: 2011
|
|
@@ -894,7 +893,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
894
893
|
context "when the attribute is not unique with no scope" do
|
|
895
894
|
|
|
896
895
|
before do
|
|
897
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
896
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
898
897
|
end
|
|
899
898
|
|
|
900
899
|
let(:dictionary) do
|
|
@@ -909,7 +908,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
909
908
|
context "when the attribute is not unique in another scope" do
|
|
910
909
|
|
|
911
910
|
before do
|
|
912
|
-
Dictionary.create(
|
|
911
|
+
Dictionary.create!(
|
|
913
912
|
name: "Oxford",
|
|
914
913
|
publisher: "Amazon",
|
|
915
914
|
year: 1995
|
|
@@ -934,7 +933,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
934
933
|
context "when the document is not the match" do
|
|
935
934
|
|
|
936
935
|
before do
|
|
937
|
-
Dictionary.create(
|
|
936
|
+
Dictionary.create!(
|
|
938
937
|
name: "Oxford",
|
|
939
938
|
publisher: "Amazon",
|
|
940
939
|
year: 1960
|
|
@@ -955,14 +954,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
955
954
|
|
|
956
955
|
it "adds the uniqueness errors" do
|
|
957
956
|
dictionary.valid?
|
|
958
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
957
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
959
958
|
end
|
|
960
959
|
end
|
|
961
960
|
|
|
962
961
|
context "when the document is the match in the database" do
|
|
963
962
|
|
|
964
963
|
let!(:dictionary) do
|
|
965
|
-
Dictionary.create(
|
|
964
|
+
Dictionary.create!(
|
|
966
965
|
name: "Oxford",
|
|
967
966
|
publisher: "Amazon",
|
|
968
967
|
year: 1960
|
|
@@ -989,7 +988,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
989
988
|
context "when the attribute is unique" do
|
|
990
989
|
|
|
991
990
|
before do
|
|
992
|
-
Dictionary.create(name: "Oxford")
|
|
991
|
+
Dictionary.create!(name: "Oxford")
|
|
993
992
|
end
|
|
994
993
|
|
|
995
994
|
let(:dictionary) do
|
|
@@ -1006,7 +1005,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1006
1005
|
context "when the document is not the match" do
|
|
1007
1006
|
|
|
1008
1007
|
before do
|
|
1009
|
-
Dictionary.create(name: "Oxford")
|
|
1008
|
+
Dictionary.create!(name: "Oxford")
|
|
1010
1009
|
end
|
|
1011
1010
|
|
|
1012
1011
|
let(:dictionary) do
|
|
@@ -1019,14 +1018,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1019
1018
|
|
|
1020
1019
|
it "adds the uniqueness error" do
|
|
1021
1020
|
dictionary.valid?
|
|
1022
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
1021
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
1023
1022
|
end
|
|
1024
1023
|
end
|
|
1025
1024
|
|
|
1026
1025
|
context "when the document is the match in the database" do
|
|
1027
1026
|
|
|
1028
1027
|
let!(:dictionary) do
|
|
1029
|
-
Dictionary.create(name: "Oxford")
|
|
1028
|
+
Dictionary.create!(name: "Oxford")
|
|
1030
1029
|
end
|
|
1031
1030
|
|
|
1032
1031
|
it "returns true" do
|
|
@@ -1051,7 +1050,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1051
1050
|
context "when there are no special characters" do
|
|
1052
1051
|
|
|
1053
1052
|
before do
|
|
1054
|
-
Dictionary.create(name: "Oxford")
|
|
1053
|
+
Dictionary.create!(name: "Oxford")
|
|
1055
1054
|
end
|
|
1056
1055
|
|
|
1057
1056
|
let(:dictionary) do
|
|
@@ -1066,7 +1065,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1066
1065
|
context "when special characters exist" do
|
|
1067
1066
|
|
|
1068
1067
|
before do
|
|
1069
|
-
Dictionary.create(name: "Oxford")
|
|
1068
|
+
Dictionary.create!(name: "Oxford")
|
|
1070
1069
|
end
|
|
1071
1070
|
|
|
1072
1071
|
let(:dictionary) do
|
|
@@ -1084,7 +1083,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1084
1083
|
context "when the document is not the match" do
|
|
1085
1084
|
|
|
1086
1085
|
before do
|
|
1087
|
-
Dictionary.create(name: "Oxford")
|
|
1086
|
+
Dictionary.create!(name: "Oxford")
|
|
1088
1087
|
end
|
|
1089
1088
|
|
|
1090
1089
|
let(:dictionary) do
|
|
@@ -1097,14 +1096,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1097
1096
|
|
|
1098
1097
|
it "adds the uniqueness error" do
|
|
1099
1098
|
dictionary.valid?
|
|
1100
|
-
expect(dictionary.errors[:name]).to eq([ "
|
|
1099
|
+
expect(dictionary.errors[:name]).to eq([ "has already been taken" ])
|
|
1101
1100
|
end
|
|
1102
1101
|
end
|
|
1103
1102
|
|
|
1104
1103
|
context "when the document is the match in the database" do
|
|
1105
1104
|
|
|
1106
1105
|
let!(:dictionary) do
|
|
1107
|
-
Dictionary.create(name: "Oxford")
|
|
1106
|
+
Dictionary.create!(name: "Oxford")
|
|
1108
1107
|
end
|
|
1109
1108
|
|
|
1110
1109
|
it "returns true" do
|
|
@@ -1134,7 +1133,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1134
1133
|
context "when the attribute is nil" do
|
|
1135
1134
|
|
|
1136
1135
|
before do
|
|
1137
|
-
Dictionary.create
|
|
1136
|
+
Dictionary.create!
|
|
1138
1137
|
end
|
|
1139
1138
|
|
|
1140
1139
|
let(:dictionary) do
|
|
@@ -1160,7 +1159,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1160
1159
|
context "when the attribute is blank" do
|
|
1161
1160
|
|
|
1162
1161
|
before do
|
|
1163
|
-
Dictionary.create(name: "")
|
|
1162
|
+
Dictionary.create!(name: "")
|
|
1164
1163
|
end
|
|
1165
1164
|
|
|
1166
1165
|
let(:dictionary) do
|
|
@@ -1189,7 +1188,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1189
1188
|
context "when the attribute is unique" do
|
|
1190
1189
|
|
|
1191
1190
|
before do
|
|
1192
|
-
Login.create(username: "Oxford")
|
|
1191
|
+
Login.create!(username: "Oxford")
|
|
1193
1192
|
end
|
|
1194
1193
|
|
|
1195
1194
|
let(:login) do
|
|
@@ -1206,7 +1205,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1206
1205
|
context "when the document is not the match" do
|
|
1207
1206
|
|
|
1208
1207
|
before do
|
|
1209
|
-
Login.create(username: "Oxford")
|
|
1208
|
+
Login.create!(username: "Oxford")
|
|
1210
1209
|
end
|
|
1211
1210
|
|
|
1212
1211
|
let(:login) do
|
|
@@ -1219,14 +1218,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1219
1218
|
|
|
1220
1219
|
it "adds the uniqueness error" do
|
|
1221
1220
|
login.valid?
|
|
1222
|
-
expect(login.errors[:username]).to eq([ "
|
|
1221
|
+
expect(login.errors[:username]).to eq([ "has already been taken" ])
|
|
1223
1222
|
end
|
|
1224
1223
|
end
|
|
1225
1224
|
|
|
1226
1225
|
context "when the document is the match in the database" do
|
|
1227
1226
|
|
|
1228
1227
|
let!(:login) do
|
|
1229
|
-
Login.create(username: "Oxford")
|
|
1228
|
+
Login.create!(username: "Oxford")
|
|
1230
1229
|
end
|
|
1231
1230
|
|
|
1232
1231
|
it "returns true" do
|
|
@@ -1249,7 +1248,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1249
1248
|
context "when the attribute is unique" do
|
|
1250
1249
|
|
|
1251
1250
|
before do
|
|
1252
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1251
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1253
1252
|
end
|
|
1254
1253
|
|
|
1255
1254
|
let(:login) do
|
|
@@ -1264,7 +1263,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1264
1263
|
context "when the attribute is unique in the scope" do
|
|
1265
1264
|
|
|
1266
1265
|
before do
|
|
1267
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1266
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1268
1267
|
end
|
|
1269
1268
|
|
|
1270
1269
|
let(:login) do
|
|
@@ -1279,7 +1278,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1279
1278
|
context "when the attribute is not unique with no scope" do
|
|
1280
1279
|
|
|
1281
1280
|
before do
|
|
1282
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1281
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1283
1282
|
end
|
|
1284
1283
|
|
|
1285
1284
|
let(:login) do
|
|
@@ -1294,7 +1293,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1294
1293
|
context "when the attribute is not unique in another scope" do
|
|
1295
1294
|
|
|
1296
1295
|
before do
|
|
1297
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1296
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1298
1297
|
end
|
|
1299
1298
|
|
|
1300
1299
|
let(:login) do
|
|
@@ -1311,7 +1310,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1311
1310
|
context "when the document is not the match" do
|
|
1312
1311
|
|
|
1313
1312
|
before do
|
|
1314
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1313
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1315
1314
|
end
|
|
1316
1315
|
|
|
1317
1316
|
let(:login) do
|
|
@@ -1324,14 +1323,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1324
1323
|
|
|
1325
1324
|
it "adds the uniqueness errors" do
|
|
1326
1325
|
login.valid?
|
|
1327
|
-
expect(login.errors[:username]).to eq([ "
|
|
1326
|
+
expect(login.errors[:username]).to eq([ "has already been taken" ])
|
|
1328
1327
|
end
|
|
1329
1328
|
end
|
|
1330
1329
|
|
|
1331
1330
|
context "when the document is the match in the database" do
|
|
1332
1331
|
|
|
1333
1332
|
let!(:login) do
|
|
1334
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1333
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1335
1334
|
end
|
|
1336
1335
|
|
|
1337
1336
|
it "returns true" do
|
|
@@ -1354,7 +1353,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1354
1353
|
context "when the attribute is unique" do
|
|
1355
1354
|
|
|
1356
1355
|
before do
|
|
1357
|
-
Login.create(username: "Oxford")
|
|
1356
|
+
Login.create!(username: "Oxford")
|
|
1358
1357
|
end
|
|
1359
1358
|
|
|
1360
1359
|
let(:login) do
|
|
@@ -1371,7 +1370,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1371
1370
|
context "when the document is not the match" do
|
|
1372
1371
|
|
|
1373
1372
|
before do
|
|
1374
|
-
Login.create(username: "Oxford")
|
|
1373
|
+
Login.create!(username: "Oxford")
|
|
1375
1374
|
end
|
|
1376
1375
|
|
|
1377
1376
|
let(:login) do
|
|
@@ -1384,14 +1383,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1384
1383
|
|
|
1385
1384
|
it "adds the uniqueness error" do
|
|
1386
1385
|
login.valid?
|
|
1387
|
-
expect(login.errors[:username]).to eq([ "
|
|
1386
|
+
expect(login.errors[:username]).to eq([ "has already been taken" ])
|
|
1388
1387
|
end
|
|
1389
1388
|
end
|
|
1390
1389
|
|
|
1391
1390
|
context "when the document is the match in the database" do
|
|
1392
1391
|
|
|
1393
1392
|
let!(:login) do
|
|
1394
|
-
Login.create(username: "Oxford")
|
|
1393
|
+
Login.create!(username: "Oxford")
|
|
1395
1394
|
end
|
|
1396
1395
|
|
|
1397
1396
|
it "returns true" do
|
|
@@ -1416,7 +1415,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1416
1415
|
context "when there are no special characters" do
|
|
1417
1416
|
|
|
1418
1417
|
before do
|
|
1419
|
-
Login.create(username: "Oxford")
|
|
1418
|
+
Login.create!(username: "Oxford")
|
|
1420
1419
|
end
|
|
1421
1420
|
|
|
1422
1421
|
let(:login) do
|
|
@@ -1431,7 +1430,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1431
1430
|
context "when special characters exist" do
|
|
1432
1431
|
|
|
1433
1432
|
before do
|
|
1434
|
-
Login.create(username: "Oxford")
|
|
1433
|
+
Login.create!(username: "Oxford")
|
|
1435
1434
|
end
|
|
1436
1435
|
|
|
1437
1436
|
let(:login) do
|
|
@@ -1449,7 +1448,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1449
1448
|
context "when the document is not the match" do
|
|
1450
1449
|
|
|
1451
1450
|
before do
|
|
1452
|
-
Login.create(username: "Oxford")
|
|
1451
|
+
Login.create!(username: "Oxford")
|
|
1453
1452
|
end
|
|
1454
1453
|
|
|
1455
1454
|
let(:login) do
|
|
@@ -1462,14 +1461,14 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1462
1461
|
|
|
1463
1462
|
it "adds the uniqueness error" do
|
|
1464
1463
|
login.valid?
|
|
1465
|
-
expect(login.errors[:username]).to eq([ "
|
|
1464
|
+
expect(login.errors[:username]).to eq([ "has already been taken" ])
|
|
1466
1465
|
end
|
|
1467
1466
|
end
|
|
1468
1467
|
|
|
1469
1468
|
context "when the document is the match in the database" do
|
|
1470
1469
|
|
|
1471
1470
|
let!(:login) do
|
|
1472
|
-
Login.create(username: "Oxford")
|
|
1471
|
+
Login.create!(username: "Oxford")
|
|
1473
1472
|
end
|
|
1474
1473
|
|
|
1475
1474
|
it "returns true" do
|
|
@@ -1492,7 +1491,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1492
1491
|
context "when the attribute is nil" do
|
|
1493
1492
|
|
|
1494
1493
|
before do
|
|
1495
|
-
Login.create
|
|
1494
|
+
Login.create!
|
|
1496
1495
|
end
|
|
1497
1496
|
|
|
1498
1497
|
let(:login) do
|
|
@@ -1518,7 +1517,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1518
1517
|
context "when the attribute is blank" do
|
|
1519
1518
|
|
|
1520
1519
|
before do
|
|
1521
|
-
Login.create(username: "")
|
|
1520
|
+
Login.create!(username: "")
|
|
1522
1521
|
end
|
|
1523
1522
|
|
|
1524
1523
|
let(:login) do
|
|
@@ -1545,7 +1544,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1545
1544
|
context "when the attribute is unique" do
|
|
1546
1545
|
|
|
1547
1546
|
before do
|
|
1548
|
-
Bar.create(lat_lng: LatLng.new(52.30, 13.25))
|
|
1547
|
+
Bar.create!(lat_lng: LatLng.new(52.30, 13.25))
|
|
1549
1548
|
end
|
|
1550
1549
|
|
|
1551
1550
|
let(:unique_bar) do
|
|
@@ -1561,7 +1560,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1561
1560
|
context "when the attribute is not unique" do
|
|
1562
1561
|
|
|
1563
1562
|
before do
|
|
1564
|
-
Bar.create(lat_lng: LatLng.new(52.30, 13.25))
|
|
1563
|
+
Bar.create!(lat_lng: LatLng.new(52.30, 13.25))
|
|
1565
1564
|
end
|
|
1566
1565
|
|
|
1567
1566
|
let(:non_unique_bar) do
|
|
@@ -1588,7 +1587,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1588
1587
|
context "when the attribute is unique" do
|
|
1589
1588
|
|
|
1590
1589
|
before do
|
|
1591
|
-
Band.create(name: 'Foo', active: false)
|
|
1590
|
+
Band.create!(name: 'Foo', active: false)
|
|
1592
1591
|
end
|
|
1593
1592
|
|
|
1594
1593
|
let(:unique_band) do
|
|
@@ -1604,7 +1603,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1604
1603
|
context "when the attribute is not unique" do
|
|
1605
1604
|
|
|
1606
1605
|
before do
|
|
1607
|
-
Band.create(name: 'Foo')
|
|
1606
|
+
Band.create!(name: 'Foo')
|
|
1608
1607
|
end
|
|
1609
1608
|
|
|
1610
1609
|
let(:non_unique_band) do
|
|
@@ -1622,17 +1621,17 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1622
1621
|
context "when the document is embedded" do
|
|
1623
1622
|
|
|
1624
1623
|
let(:word) do
|
|
1625
|
-
Word.create(name: "Schadenfreude")
|
|
1624
|
+
Word.create!(name: "Schadenfreude")
|
|
1626
1625
|
end
|
|
1627
1626
|
|
|
1628
1627
|
context "when in an embeds_many" do
|
|
1629
1628
|
|
|
1630
1629
|
let!(:def_one) do
|
|
1631
|
-
word.definitions.create(description: "1")
|
|
1630
|
+
word.definitions.create!(description: "1")
|
|
1632
1631
|
end
|
|
1633
1632
|
|
|
1634
1633
|
let!(:def_two) do
|
|
1635
|
-
word.definitions.create(description: "2")
|
|
1634
|
+
word.definitions.create!(description: "2")
|
|
1636
1635
|
end
|
|
1637
1636
|
|
|
1638
1637
|
context "when a document is being destroyed" do
|
|
@@ -1711,7 +1710,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1711
1710
|
|
|
1712
1711
|
it "adds the uniqueness error" do
|
|
1713
1712
|
definition.valid?
|
|
1714
|
-
expect(definition.errors[:description]).to eq([ "
|
|
1713
|
+
expect(definition.errors[:description]).to eq([ "has already been taken" ])
|
|
1715
1714
|
end
|
|
1716
1715
|
end
|
|
1717
1716
|
|
|
@@ -1839,7 +1838,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1839
1838
|
|
|
1840
1839
|
it "adds the uniqueness errors" do
|
|
1841
1840
|
definition.valid?
|
|
1842
|
-
expect(definition.errors[:description]).to eq([ "
|
|
1841
|
+
expect(definition.errors[:description]).to eq([ "has already been taken" ])
|
|
1843
1842
|
end
|
|
1844
1843
|
end
|
|
1845
1844
|
|
|
@@ -1977,7 +1976,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1977
1976
|
|
|
1978
1977
|
it "adds the uniqueness errors" do
|
|
1979
1978
|
definition.valid?
|
|
1980
|
-
expect(definition.errors[:description]).to eq([ "
|
|
1979
|
+
expect(definition.errors[:description]).to eq([ "has already been taken" ])
|
|
1981
1980
|
end
|
|
1982
1981
|
end
|
|
1983
1982
|
|
|
@@ -2041,7 +2040,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2041
2040
|
|
|
2042
2041
|
it "adds the uniqueness error" do
|
|
2043
2042
|
definition.valid?
|
|
2044
|
-
expect(definition.errors[:description]).to eq([ "
|
|
2043
|
+
expect(definition.errors[:description]).to eq([ "has already been taken" ])
|
|
2045
2044
|
end
|
|
2046
2045
|
end
|
|
2047
2046
|
|
|
@@ -2119,7 +2118,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2119
2118
|
|
|
2120
2119
|
it "adds the uniqueness error" do
|
|
2121
2120
|
definition.valid?
|
|
2122
|
-
expect(definition.errors[:description]).to eq([ "
|
|
2121
|
+
expect(definition.errors[:description]).to eq([ "has already been taken" ])
|
|
2123
2122
|
end
|
|
2124
2123
|
end
|
|
2125
2124
|
|
|
@@ -2215,7 +2214,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2215
2214
|
it "adds the uniqueness error to the aliased field name" do
|
|
2216
2215
|
definition.valid?
|
|
2217
2216
|
expect(definition.errors).to have_key(:part)
|
|
2218
|
-
expect(definition.errors[:part]).to eq([ "
|
|
2217
|
+
expect(definition.errors[:part]).to eq([ "has already been taken" ])
|
|
2219
2218
|
end
|
|
2220
2219
|
end
|
|
2221
2220
|
|
|
@@ -2232,7 +2231,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2232
2231
|
it "adds the uniqueness error to the underlying field name" do
|
|
2233
2232
|
definition.valid?
|
|
2234
2233
|
expect(definition.errors).to have_key(:p)
|
|
2235
|
-
expect(definition.errors[:p]).to eq([ "
|
|
2234
|
+
expect(definition.errors[:p]).to eq([ "has already been taken" ])
|
|
2236
2235
|
end
|
|
2237
2236
|
end
|
|
2238
2237
|
|
|
@@ -2251,7 +2250,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2251
2250
|
it "adds the uniqueness error to the aliased field name" do
|
|
2252
2251
|
definition.valid?
|
|
2253
2252
|
expect(definition.errors).to have_key(:synonyms)
|
|
2254
|
-
expect(definition.errors[:synonyms]).to eq([ "
|
|
2253
|
+
expect(definition.errors[:synonyms]).to eq([ "has already been taken" ])
|
|
2255
2254
|
end
|
|
2256
2255
|
end
|
|
2257
2256
|
|
|
@@ -2268,7 +2267,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2268
2267
|
it "adds the uniqueness error to the aliased field name" do
|
|
2269
2268
|
definition.valid?
|
|
2270
2269
|
expect(definition.errors).to have_key(:syn)
|
|
2271
|
-
expect(definition.errors[:syn]).to eq([ "
|
|
2270
|
+
expect(definition.errors[:syn]).to eq([ "has already been taken" ])
|
|
2272
2271
|
end
|
|
2273
2272
|
end
|
|
2274
2273
|
end
|
|
@@ -2320,7 +2319,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2320
2319
|
|
|
2321
2320
|
it "adds the uniqueness error" do
|
|
2322
2321
|
word_origin.valid?
|
|
2323
|
-
expect(word_origin.errors[:origin_id]).to eq([ "
|
|
2322
|
+
expect(word_origin.errors[:origin_id]).to eq([ "has already been taken" ])
|
|
2324
2323
|
end
|
|
2325
2324
|
end
|
|
2326
2325
|
|
|
@@ -2445,7 +2444,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2445
2444
|
it "should be invalid" do
|
|
2446
2445
|
subclass_document_with_duplicated_name.tap do |d|
|
|
2447
2446
|
expect(d).to be_invalid
|
|
2448
|
-
expect(d.errors[:name]).to eq([ "
|
|
2447
|
+
expect(d.errors[:name]).to eq([ "has already been taken" ])
|
|
2449
2448
|
end
|
|
2450
2449
|
end
|
|
2451
2450
|
end
|
|
@@ -2459,7 +2458,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2459
2458
|
end
|
|
2460
2459
|
|
|
2461
2460
|
let!(:person) do
|
|
2462
|
-
Person.create(ssn: "132-11-1111", username: "aaasdaffff")
|
|
2461
|
+
Person.create!(ssn: "132-11-1111", username: "aaasdaffff")
|
|
2463
2462
|
end
|
|
2464
2463
|
|
|
2465
2464
|
after do
|
|
@@ -2473,4 +2472,31 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2473
2472
|
}.to raise_error(Mongo::Error::OperationFailure)
|
|
2474
2473
|
end
|
|
2475
2474
|
end
|
|
2475
|
+
|
|
2476
|
+
describe "i18n" do
|
|
2477
|
+
|
|
2478
|
+
context 'when using a different locale' do
|
|
2479
|
+
with_default_i18n_configs
|
|
2480
|
+
|
|
2481
|
+
before do
|
|
2482
|
+
I18n.locale = :fr
|
|
2483
|
+
# Translation key location is as per rails-i18n gem.
|
|
2484
|
+
# See: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en.yml
|
|
2485
|
+
I18n.backend.store_translations(:fr, { errors: { messages: { taken: 'est déjà utilisé(e)' } } })
|
|
2486
|
+
end
|
|
2487
|
+
|
|
2488
|
+
after do
|
|
2489
|
+
# i18n 1.0 requires +send+ because +translations+ aren't public.
|
|
2490
|
+
# Newer i18n versions have it as public.
|
|
2491
|
+
I18n.backend.send(:translations).delete(:fr)
|
|
2492
|
+
end
|
|
2493
|
+
|
|
2494
|
+
it "correctly translates the error message" do
|
|
2495
|
+
Circus.create!(slogan: 'The Greatest Show on Mars')
|
|
2496
|
+
dict = Circus.new(slogan: 'The Greatest Show on Mars')
|
|
2497
|
+
dict.valid?
|
|
2498
|
+
expect(dict.errors.messages[:slogan]).to eq(["est déjà utilisé(e)"])
|
|
2499
|
+
end
|
|
2500
|
+
end
|
|
2501
|
+
end
|
|
2476
2502
|
end
|