mongoid 7.3.4 → 7.4.1
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 +17 -17
- data/README.md +3 -3
- data/lib/config/locales/en.yml +21 -20
- data/lib/mongoid/association/accessors.rb +0 -27
- data/lib/mongoid/association/bindable.rb +0 -21
- data/lib/mongoid/association/builders.rb +0 -9
- data/lib/mongoid/association/constrainable.rb +0 -3
- data/lib/mongoid/association/depending.rb +0 -7
- data/lib/mongoid/association/eager_loadable.rb +0 -3
- data/lib/mongoid/association/embedded/batchable.rb +29 -42
- data/lib/mongoid/association/embedded/cyclic.rb +2 -11
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
- data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
- data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
- data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
- data/lib/mongoid/association/embedded.rb +0 -1
- data/lib/mongoid/association/macros.rb +6 -5
- data/lib/mongoid/association/many.rb +0 -17
- data/lib/mongoid/association/marshalable.rb +0 -5
- data/lib/mongoid/association/nested/many.rb +0 -11
- data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
- data/lib/mongoid/association/nested/one.rb +1 -16
- data/lib/mongoid/association/nested.rb +0 -3
- data/lib/mongoid/association/one.rb +1 -10
- data/lib/mongoid/association/options.rb +0 -33
- data/lib/mongoid/association/proxy.rb +0 -21
- data/lib/mongoid/association/referenced/auto_save.rb +0 -9
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
- data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
- data/lib/mongoid/association/referenced/eager.rb +3 -24
- 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 +12 -39
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
- 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 +8 -56
- data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
- data/lib/mongoid/association/referenced/has_many.rb +12 -39
- data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
- data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
- data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
- data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
- data/lib/mongoid/association/referenced/has_one.rb +9 -32
- data/lib/mongoid/association/referenced/syncable.rb +0 -17
- data/lib/mongoid/association/referenced.rb +0 -1
- data/lib/mongoid/association/reflections.rb +0 -1
- data/lib/mongoid/association/relatable.rb +0 -61
- data/lib/mongoid/association.rb +0 -17
- data/lib/mongoid/atomic/modifiers.rb +4 -51
- 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 +1 -42
- data/lib/mongoid/attributes/dynamic.rb +0 -17
- data/lib/mongoid/attributes/nested.rb +0 -5
- data/lib/mongoid/attributes/processing.rb +1 -18
- data/lib/mongoid/attributes/projector.rb +0 -1
- data/lib/mongoid/attributes/readonly.rb +0 -5
- data/lib/mongoid/attributes.rb +0 -33
- data/lib/mongoid/cacheable.rb +1 -6
- data/lib/mongoid/changeable.rb +3 -59
- data/lib/mongoid/clients/factory.rb +0 -7
- data/lib/mongoid/clients/options.rb +0 -5
- data/lib/mongoid/clients/sessions.rb +0 -7
- data/lib/mongoid/clients/storage_options.rb +0 -7
- data/lib/mongoid/clients/validators/storage.rb +0 -9
- data/lib/mongoid/clients/validators.rb +0 -1
- data/lib/mongoid/clients.rb +0 -9
- data/lib/mongoid/composable.rb +0 -7
- data/lib/mongoid/config/environment.rb +21 -6
- data/lib/mongoid/config/options.rb +0 -11
- data/lib/mongoid/config/validators/client.rb +0 -17
- data/lib/mongoid/config/validators/option.rb +0 -3
- data/lib/mongoid/config/validators.rb +0 -1
- data/lib/mongoid/config.rb +37 -29
- data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
- data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +0 -25
- data/lib/mongoid/contextual/command.rb +0 -5
- data/lib/mongoid/contextual/geo_near.rb +1 -34
- data/lib/mongoid/contextual/map_reduce.rb +0 -31
- data/lib/mongoid/contextual/memory.rb +4 -59
- data/lib/mongoid/contextual/mongo.rb +132 -78
- data/lib/mongoid/contextual/none.rb +39 -28
- data/lib/mongoid/contextual/queryable.rb +0 -3
- data/lib/mongoid/contextual.rb +0 -5
- data/lib/mongoid/copyable.rb +0 -5
- data/lib/mongoid/criteria/findable.rb +0 -13
- data/lib/mongoid/criteria/includable.rb +0 -9
- data/lib/mongoid/criteria/inspectable.rb +0 -3
- data/lib/mongoid/criteria/marshalable.rb +0 -5
- data/lib/mongoid/criteria/modifiable.rb +0 -19
- data/lib/mongoid/criteria/options.rb +0 -3
- data/lib/mongoid/criteria/permission.rb +0 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
- data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
- data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
- data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
- data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
- data/lib/mongoid/criteria/queryable/key.rb +1 -14
- data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
- data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
- data/lib/mongoid/criteria/queryable/optional.rb +0 -45
- data/lib/mongoid/criteria/queryable/options.rb +0 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
- data/lib/mongoid/criteria/queryable/selectable.rb +20 -67
- data/lib/mongoid/criteria/queryable/selector.rb +0 -17
- data/lib/mongoid/criteria/queryable/smash.rb +0 -11
- data/lib/mongoid/criteria/queryable/storable.rb +7 -3
- data/lib/mongoid/criteria/queryable.rb +0 -7
- data/lib/mongoid/criteria/scopable.rb +25 -19
- data/lib/mongoid/criteria.rb +0 -57
- data/lib/mongoid/document.rb +0 -51
- data/lib/mongoid/equality.rb +26 -10
- data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
- data/lib/mongoid/errors/callback.rb +0 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
- data/lib/mongoid/errors/delete_restriction.rb +0 -3
- data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
- data/lib/mongoid/errors/document_not_found.rb +0 -9
- data/lib/mongoid/errors/eager_load.rb +0 -3
- data/lib/mongoid/errors/empty_config_file.rb +0 -1
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
- data/lib/mongoid/errors/invalid_collection.rb +0 -1
- data/lib/mongoid/errors/invalid_config_file.rb +0 -1
- data/lib/mongoid/errors/invalid_config_option.rb +0 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
- data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field.rb +0 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
- data/lib/mongoid/errors/invalid_field_option.rb +0 -3
- data/lib/mongoid/errors/invalid_find.rb +0 -3
- 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 +0 -1
- data/lib/mongoid/errors/invalid_relation.rb +0 -7
- data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
- 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 +0 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
- data/lib/mongoid/errors/invalid_time.rb +0 -3
- data/lib/mongoid/errors/invalid_value.rb +0 -1
- 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 +0 -9
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
- data/lib/mongoid/errors/no_client_config.rb +0 -3
- data/lib/mongoid/errors/no_client_database.rb +0 -3
- data/lib/mongoid/errors/no_client_hosts.rb +0 -3
- data/lib/mongoid/errors/no_clients_config.rb +0 -3
- data/lib/mongoid/errors/no_default_client.rb +0 -3
- 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 +0 -3
- 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 +0 -1
- data/lib/mongoid/errors/unknown_attribute.rb +0 -3
- 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 +0 -1
- data/lib/mongoid/evolvable.rb +0 -3
- data/lib/mongoid/extensions/array.rb +3 -29
- data/lib/mongoid/extensions/big_decimal.rb +0 -11
- data/lib/mongoid/extensions/boolean.rb +0 -3
- data/lib/mongoid/extensions/date.rb +0 -9
- data/lib/mongoid/extensions/date_time.rb +0 -9
- data/lib/mongoid/extensions/decimal128.rb +0 -5
- data/lib/mongoid/extensions/false_class.rb +1 -6
- data/lib/mongoid/extensions/float.rb +0 -7
- data/lib/mongoid/extensions/hash.rb +0 -27
- data/lib/mongoid/extensions/integer.rb +0 -9
- data/lib/mongoid/extensions/module.rb +0 -3
- data/lib/mongoid/extensions/nil_class.rb +0 -5
- data/lib/mongoid/extensions/object.rb +1 -40
- data/lib/mongoid/extensions/object_id.rb +0 -7
- data/lib/mongoid/extensions/range.rb +0 -11
- data/lib/mongoid/extensions/regexp.rb +0 -3
- data/lib/mongoid/extensions/set.rb +0 -7
- data/lib/mongoid/extensions/string.rb +1 -30
- data/lib/mongoid/extensions/symbol.rb +0 -7
- data/lib/mongoid/extensions/time.rb +0 -11
- data/lib/mongoid/extensions/time_with_zone.rb +13 -9
- data/lib/mongoid/extensions/true_class.rb +1 -6
- data/lib/mongoid/extensions.rb +15 -3
- data/lib/mongoid/factory.rb +1 -2
- data/lib/mongoid/fields/foreign_key.rb +0 -21
- data/lib/mongoid/fields/localized.rb +0 -11
- data/lib/mongoid/fields/standard.rb +0 -33
- data/lib/mongoid/fields/validators/macro.rb +0 -9
- data/lib/mongoid/fields/validators.rb +0 -1
- data/lib/mongoid/fields.rb +64 -57
- data/lib/mongoid/findable.rb +0 -5
- data/lib/mongoid/indexable/specification.rb +0 -15
- data/lib/mongoid/indexable/validators/options.rb +0 -7
- data/lib/mongoid/indexable.rb +1 -18
- data/lib/mongoid/inspectable.rb +1 -10
- data/lib/mongoid/interceptable.rb +0 -25
- data/lib/mongoid/loggable.rb +0 -9
- data/lib/mongoid/matchable.rb +0 -5
- data/lib/mongoid/matcher/eq_impl.rb +37 -2
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
- data/lib/mongoid/persistable/creatable.rb +1 -20
- data/lib/mongoid/persistable/deletable.rb +0 -17
- data/lib/mongoid/persistable/destroyable.rb +0 -7
- 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 +0 -7
- data/lib/mongoid/persistable/renamable.rb +0 -5
- data/lib/mongoid/persistable/savable.rb +0 -7
- data/lib/mongoid/persistable/settable.rb +0 -5
- data/lib/mongoid/persistable/unsettable.rb +0 -5
- data/lib/mongoid/persistable/updatable.rb +2 -17
- data/lib/mongoid/persistable/upsertable.rb +1 -8
- data/lib/mongoid/persistable.rb +0 -23
- data/lib/mongoid/persistence_context.rb +0 -27
- data/lib/mongoid/positional.rb +0 -5
- data/lib/mongoid/query_cache.rb +0 -33
- data/lib/mongoid/railtie.rb +0 -15
- data/lib/mongoid/railties/controller_runtime.rb +0 -1
- data/lib/mongoid/reloadable.rb +4 -16
- data/lib/mongoid/scopable.rb +6 -34
- data/lib/mongoid/selectable.rb +0 -9
- data/lib/mongoid/serializable.rb +0 -15
- data/lib/mongoid/shardable.rb +0 -7
- data/lib/mongoid/stateful.rb +0 -9
- data/lib/mongoid/stringified_symbol.rb +2 -3
- data/lib/mongoid/tasks/database.rb +0 -5
- data/lib/mongoid/threaded/lifecycle.rb +0 -21
- data/lib/mongoid/threaded.rb +0 -55
- data/lib/mongoid/timestamps/created/short.rb +0 -1
- data/lib/mongoid/timestamps/created.rb +0 -1
- 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 +0 -3
- data/lib/mongoid/timestamps.rb +0 -1
- data/lib/mongoid/touchable.rb +0 -7
- data/lib/mongoid/traversable.rb +67 -53
- data/lib/mongoid/validatable/associated.rb +0 -3
- data/lib/mongoid/validatable/format.rb +0 -1
- data/lib/mongoid/validatable/length.rb +0 -1
- data/lib/mongoid/validatable/localizable.rb +0 -3
- data/lib/mongoid/validatable/macros.rb +0 -7
- data/lib/mongoid/validatable/presence.rb +1 -8
- data/lib/mongoid/validatable/queryable.rb +0 -3
- data/lib/mongoid/validatable/uniqueness.rb +15 -30
- data/lib/mongoid/validatable.rb +1 -22
- data/lib/mongoid/version.rb +1 -2
- data/lib/mongoid.rb +0 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +7 -2
- data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
- data/lib/rails/generators/mongoid_generator.rb +0 -1
- data/lib/rails/mongoid.rb +0 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +20 -15
- data/spec/integration/associations/belongs_to_spec.rb +0 -1
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +0 -1
- data/spec/integration/associations/embeds_many_spec.rb +0 -1
- data/spec/integration/associations/embeds_one_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec.rb +0 -1
- data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
- data/spec/integration/associations/has_many_spec.rb +0 -1
- data/spec/integration/associations/has_one_spec.rb +0 -1
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
- 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 +0 -1
- data/spec/integration/bson_regexp_raw_spec.rb +0 -1
- data/spec/integration/callbacks_models.rb +12 -0
- data/spec/integration/callbacks_spec.rb +18 -6
- data/spec/integration/contextual/empty_spec.rb +0 -1
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +0 -1
- data/spec/integration/criteria/default_scope_spec.rb +51 -0
- data/spec/integration/criteria/logical_spec.rb +30 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
- data/spec/integration/discriminator_key_spec.rb +0 -1
- data/spec/integration/discriminator_value_spec.rb +0 -1
- data/spec/integration/document_spec.rb +0 -1
- data/spec/integration/i18n_fallbacks_spec.rb +0 -1
- data/spec/integration/matcher_examples_spec.rb +0 -1
- data/spec/integration/matcher_operator_spec.rb +27 -3
- data/spec/integration/matcher_spec.rb +95 -1
- data/spec/integration/server_query_spec.rb +0 -1
- data/spec/integration/shardable_spec.rb +0 -1
- data/spec/integration/stringified_symbol_field_spec.rb +14 -1
- data/spec/lite_spec_helper.rb +9 -3
- data/spec/mongoid/association/accessors_spec.rb +44 -15
- 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 +32 -33
- data/spec/mongoid/association/depending_spec.rb +12 -13
- data/spec/mongoid/association/eager_spec.rb +4 -5
- 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 +0 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -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 +0 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +405 -135
- data/spec/mongoid/association/embedded/embeds_many_models.rb +137 -1
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
- 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 +0 -1
- 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 +0 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
- 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 +187 -154
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -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 +21 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +241 -162
- data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
- data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
- data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
- data/spec/mongoid/association/reflections_spec.rb +0 -1
- data/spec/mongoid/association/syncable_spec.rb +31 -32
- data/spec/mongoid/association_spec.rb +0 -1
- data/spec/mongoid/atomic/modifiers_spec.rb +0 -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 +0 -1
- data/spec/mongoid/atomic_spec.rb +28 -7
- data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
- data/spec/mongoid/attributes/nested_spec.rb +66 -67
- data/spec/mongoid/attributes/projector_spec.rb +5 -2
- data/spec/mongoid/attributes/readonly_spec.rb +22 -23
- data/spec/mongoid/attributes_spec.rb +32 -33
- data/spec/mongoid/cacheable_spec.rb +1 -2
- data/spec/mongoid/changeable_spec.rb +35 -36
- data/spec/mongoid/clients/factory_spec.rb +11 -13
- data/spec/mongoid/clients/options_spec.rb +4 -5
- data/spec/mongoid/clients/sessions_spec.rb +22 -23
- data/spec/mongoid/clients/transactions_spec.rb +49 -27
- data/spec/mongoid/clients_spec.rb +6 -7
- data/spec/mongoid/composable_spec.rb +0 -1
- data/spec/mongoid/config/environment_spec.rb +39 -2
- data/spec/mongoid/config/options_spec.rb +0 -1
- data/spec/mongoid/config_spec.rb +145 -1
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
- 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 +46 -47
- data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
- data/spec/mongoid/contextual/memory_spec.rb +23 -24
- data/spec/mongoid/contextual/mongo_spec.rb +339 -77
- data/spec/mongoid/contextual/none_spec.rb +7 -82
- data/spec/mongoid/copyable_spec.rb +12 -13
- data/spec/mongoid/copyable_spec_models.rb +0 -1
- data/spec/mongoid/criteria/findable_spec.rb +23 -24
- data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
- data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
- data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
- 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 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
- 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 +0 -1
- 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 +0 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
- 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 +0 -1
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
- data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
- 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_projection_spec.rb +3 -4
- data/spec/mongoid/criteria_spec.rb +546 -186
- data/spec/mongoid/document_fields_spec.rb +0 -1
- data/spec/mongoid/document_persistence_context_spec.rb +0 -1
- data/spec/mongoid/document_query_spec.rb +0 -1
- data/spec/mongoid/document_spec.rb +11 -33
- data/spec/mongoid/equality_spec.rb +142 -41
- 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 +0 -1
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
- data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/eager_load_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
- data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
- 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 +0 -1
- 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 +1 -2
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
- data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
- data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
- data/spec/mongoid/errors/no_environment_spec.rb +0 -1
- 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 +0 -1
- data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
- 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 +0 -1
- data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
- data/spec/mongoid/extensions/binary_spec.rb +0 -1
- data/spec/mongoid/extensions/boolean_spec.rb +0 -1
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
- data/spec/mongoid/extensions/date_spec.rb +0 -1
- data/spec/mongoid/extensions/date_time_spec.rb +0 -1
- data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
- data/spec/mongoid/extensions/false_class_spec.rb +0 -1
- data/spec/mongoid/extensions/float_spec.rb +0 -1
- data/spec/mongoid/extensions/hash_spec.rb +0 -1
- data/spec/mongoid/extensions/integer_spec.rb +0 -1
- 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 +0 -1
- data/spec/mongoid/extensions/regexp_spec.rb +0 -1
- data/spec/mongoid/extensions/set_spec.rb +0 -1
- data/spec/mongoid/extensions/string_spec.rb +2 -3
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/symbol_spec.rb +0 -1
- data/spec/mongoid/extensions/time_spec.rb +0 -1
- data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
- data/spec/mongoid/extensions/true_class_spec.rb +0 -1
- data/spec/mongoid/extensions_spec.rb +14 -3
- data/spec/mongoid/factory_spec.rb +1 -1
- data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
- data/spec/mongoid/fields/localized_spec.rb +0 -1
- data/spec/mongoid/fields/standard_spec.rb +0 -1
- data/spec/mongoid/fields_spec.rb +326 -31
- data/spec/mongoid/findable_spec.rb +21 -22
- data/spec/mongoid/indexable/specification_spec.rb +0 -1
- data/spec/mongoid/indexable_spec.rb +0 -1
- data/spec/mongoid/inspectable_spec.rb +0 -1
- data/spec/mongoid/interceptable_spec.rb +102 -95
- data/spec/mongoid/loggable_spec.rb +0 -1
- data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
- data/spec/mongoid/persistable/creatable_spec.rb +2 -3
- data/spec/mongoid/persistable/deletable_spec.rb +18 -19
- data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
- data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
- data/spec/mongoid/persistable/logical_spec.rb +4 -5
- data/spec/mongoid/persistable/poppable_spec.rb +4 -5
- data/spec/mongoid/persistable/pullable_spec.rb +8 -9
- data/spec/mongoid/persistable/pushable_spec.rb +8 -9
- data/spec/mongoid/persistable/renamable_spec.rb +3 -4
- data/spec/mongoid/persistable/savable_spec.rb +15 -11
- data/spec/mongoid/persistable/settable_spec.rb +9 -10
- data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
- data/spec/mongoid/persistable/updatable_spec.rb +41 -24
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
- data/spec/mongoid/persistable_spec.rb +1 -2
- data/spec/mongoid/persistence_context_spec.rb +0 -1
- data/spec/mongoid/positional_spec.rb +0 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
- data/spec/mongoid/query_cache_spec.rb +32 -10
- data/spec/mongoid/relations/proxy_spec.rb +6 -7
- data/spec/mongoid/reloadable_spec.rb +209 -23
- data/spec/mongoid/scopable_spec.rb +65 -22
- data/spec/mongoid/selectable_spec.rb +6 -7
- data/spec/mongoid/serializable_spec.rb +9 -10
- data/spec/mongoid/shardable_spec.rb +2 -3
- data/spec/mongoid/stateful_spec.rb +1 -2
- data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
- data/spec/mongoid/tasks/database_spec.rb +0 -1
- 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 +6 -7
- data/spec/mongoid/touchable_spec.rb +15 -20
- data/spec/mongoid/touchable_spec_models.rb +0 -1
- data/spec/mongoid/traversable_spec.rb +65 -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 +67 -68
- data/spec/mongoid/validatable_spec.rb +2 -3
- data/spec/mongoid_spec.rb +0 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
- data/spec/rails/mongoid_spec.rb +0 -1
- data/spec/shared/lib/mrss/cluster_config.rb +6 -1
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
- data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +43 -5
- data/spec/spec_helper.rb +12 -22
- data/spec/support/authorization.rb +0 -1
- data/spec/support/constraints.rb +0 -1
- data/spec/support/expectations.rb +0 -1
- data/spec/support/macros.rb +31 -1
- data/spec/support/models/account.rb +1 -2
- data/spec/support/models/acolyte.rb +0 -1
- data/spec/support/models/actor.rb +0 -1
- data/spec/support/models/actress.rb +0 -1
- data/spec/support/models/address.rb +0 -1
- data/spec/support/models/address_component.rb +0 -1
- data/spec/support/models/address_number.rb +0 -1
- data/spec/support/models/agency.rb +0 -1
- data/spec/support/models/agent.rb +0 -1
- data/spec/support/models/album.rb +0 -1
- data/spec/support/models/alert.rb +0 -1
- data/spec/support/models/animal.rb +0 -1
- data/spec/support/models/answer.rb +0 -1
- data/spec/support/models/appointment.rb +0 -1
- data/spec/support/models/armrest.rb +0 -1
- data/spec/support/models/array_field.rb +0 -1
- data/spec/support/models/article.rb +0 -1
- data/spec/support/models/artist.rb +2 -1
- data/spec/support/models/artwork.rb +0 -1
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +0 -1
- data/spec/support/models/augmentation.rb +0 -1
- data/spec/support/models/author.rb +0 -1
- data/spec/support/models/baby.rb +0 -1
- data/spec/support/models/band.rb +4 -1
- data/spec/support/models/bar.rb +0 -1
- data/spec/support/models/basic.rb +0 -1
- data/spec/support/models/bed.rb +0 -1
- data/spec/support/models/big_palette.rb +0 -1
- data/spec/support/models/birthday.rb +0 -1
- data/spec/support/models/bolt.rb +0 -1
- data/spec/support/models/bomb.rb +0 -1
- data/spec/support/models/book.rb +0 -1
- data/spec/support/models/breed.rb +0 -1
- data/spec/support/models/browser.rb +0 -1
- data/spec/support/models/building.rb +0 -1
- data/spec/support/models/building_address.rb +0 -1
- data/spec/support/models/bus.rb +0 -1
- data/spec/support/models/business.rb +0 -1
- data/spec/support/models/callback_test.rb +0 -1
- data/spec/support/models/canvas.rb +0 -1
- data/spec/support/models/car.rb +0 -1
- data/spec/support/models/cat.rb +0 -1
- data/spec/support/models/category.rb +0 -1
- data/spec/support/models/child.rb +0 -1
- data/spec/support/models/child_doc.rb +3 -4
- data/spec/support/models/church.rb +0 -1
- data/spec/support/models/circle.rb +0 -1
- data/spec/support/models/circuit.rb +0 -1
- data/spec/support/models/circus.rb +0 -1
- data/spec/support/models/code.rb +0 -1
- data/spec/support/models/coding/pull_request.rb +0 -1
- data/spec/support/models/coding.rb +0 -1
- data/spec/support/models/comment.rb +0 -1
- data/spec/support/models/company.rb +0 -1
- data/spec/support/models/consumption_period.rb +0 -1
- data/spec/support/models/contextable_item.rb +0 -1
- data/spec/support/models/contractor.rb +0 -1
- data/spec/support/models/cookie.rb +0 -1
- data/spec/support/models/country_code.rb +2 -1
- data/spec/support/models/courier_job.rb +0 -1
- data/spec/support/models/crate.rb +0 -1
- data/spec/support/models/customer.rb +0 -1
- data/spec/support/models/customer_address.rb +0 -1
- data/spec/support/models/deed.rb +0 -1
- data/spec/support/models/definition.rb +0 -1
- data/spec/support/models/delegating_patient.rb +0 -1
- data/spec/support/models/description.rb +0 -1
- data/spec/support/models/dictionary.rb +0 -1
- data/spec/support/models/division.rb +0 -1
- data/spec/support/models/doctor.rb +0 -1
- data/spec/support/models/dog.rb +0 -1
- data/spec/support/models/dokument.rb +0 -1
- data/spec/support/models/draft.rb +0 -1
- data/spec/support/models/dragon.rb +0 -1
- data/spec/support/models/driver.rb +0 -1
- data/spec/support/models/drug.rb +0 -1
- data/spec/support/models/dungeon.rb +0 -1
- data/spec/support/models/edit.rb +0 -1
- data/spec/support/models/email.rb +0 -1
- data/spec/support/models/employer.rb +0 -1
- data/spec/support/models/entry.rb +0 -1
- data/spec/support/models/eraser.rb +0 -1
- data/spec/support/models/even.rb +0 -1
- data/spec/support/models/event.rb +0 -1
- data/spec/support/models/exhibition.rb +0 -1
- data/spec/support/models/exhibitor.rb +0 -1
- data/spec/support/models/explosion.rb +0 -1
- data/spec/support/models/eye.rb +0 -1
- data/spec/support/models/eye_bowl.rb +0 -1
- data/spec/support/models/face.rb +0 -1
- data/spec/support/models/favorite.rb +0 -1
- data/spec/support/models/filesystem.rb +0 -1
- data/spec/support/models/fire_hydrant.rb +0 -1
- data/spec/support/models/firefox.rb +0 -1
- data/spec/support/models/fish.rb +0 -1
- data/spec/support/models/folder.rb +0 -1
- data/spec/support/models/folder_item.rb +0 -1
- data/spec/support/models/fruits.rb +0 -1
- data/spec/support/models/game.rb +0 -1
- data/spec/support/models/ghost.rb +0 -1
- data/spec/support/models/guitar.rb +0 -1
- data/spec/support/models/hole.rb +0 -1
- data/spec/support/models/home.rb +0 -1
- data/spec/support/models/house.rb +0 -1
- data/spec/support/models/html_writer.rb +0 -1
- data/spec/support/models/id_key.rb +0 -1
- data/spec/support/models/idnodef.rb +0 -1
- data/spec/support/models/image.rb +0 -1
- data/spec/support/models/implant.rb +0 -1
- data/spec/support/models/instrument.rb +0 -1
- data/spec/support/models/item.rb +0 -1
- data/spec/support/models/jar.rb +0 -1
- data/spec/support/models/kaleidoscope.rb +0 -1
- data/spec/support/models/kangaroo.rb +0 -1
- data/spec/support/models/label.rb +2 -2
- data/spec/support/models/language.rb +0 -1
- data/spec/support/models/lat_lng.rb +0 -1
- data/spec/support/models/league.rb +0 -1
- data/spec/support/models/learner.rb +0 -1
- data/spec/support/models/line_item.rb +0 -1
- data/spec/support/models/location.rb +0 -1
- data/spec/support/models/login.rb +0 -1
- data/spec/support/models/manufacturer.rb +0 -1
- data/spec/support/models/meat.rb +0 -1
- data/spec/support/models/membership.rb +1 -1
- data/spec/support/models/message.rb +0 -1
- data/spec/support/models/minim.rb +0 -1
- data/spec/support/models/mixed_drink.rb +0 -1
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/movie.rb +0 -1
- data/spec/support/models/my_hash.rb +0 -1
- data/spec/support/models/name.rb +0 -1
- data/spec/support/models/name_only.rb +0 -1
- data/spec/support/models/node.rb +0 -1
- data/spec/support/models/note.rb +0 -1
- data/spec/support/models/nut.rb +0 -1
- data/spec/support/models/odd.rb +0 -1
- data/spec/support/models/order.rb +2 -1
- data/spec/support/models/ordered_post.rb +1 -2
- data/spec/support/models/ordered_preference.rb +0 -1
- data/spec/support/models/oscar.rb +0 -1
- data/spec/support/models/other_owner_object.rb +0 -1
- data/spec/support/models/override.rb +0 -1
- data/spec/support/models/ownable.rb +0 -1
- data/spec/support/models/owner.rb +0 -1
- data/spec/support/models/pack.rb +0 -1
- data/spec/support/models/page.rb +0 -1
- data/spec/support/models/page_question.rb +0 -1
- data/spec/support/models/palette.rb +0 -1
- data/spec/support/models/parent.rb +0 -1
- data/spec/support/models/parent_doc.rb +0 -1
- data/spec/support/models/passport.rb +5 -1
- data/spec/support/models/patient.rb +0 -1
- data/spec/support/models/pdf_writer.rb +0 -1
- data/spec/support/models/pencil.rb +0 -1
- data/spec/support/models/person.rb +1 -1
- data/spec/support/models/pet.rb +0 -1
- data/spec/support/models/pet_owner.rb +0 -1
- data/spec/support/models/phone.rb +2 -2
- data/spec/support/models/piano.rb +0 -1
- data/spec/support/models/pizza.rb +0 -1
- data/spec/support/models/player.rb +0 -1
- data/spec/support/models/post.rb +0 -1
- data/spec/support/models/post_genre.rb +0 -1
- data/spec/support/models/powerup.rb +0 -1
- data/spec/support/models/preference.rb +0 -1
- data/spec/support/models/princess.rb +0 -1
- data/spec/support/models/product.rb +0 -1
- data/spec/support/models/profile.rb +0 -1
- data/spec/support/models/pronunciation.rb +0 -1
- data/spec/support/models/pub.rb +0 -1
- data/spec/support/models/publication/encyclopedia.rb +0 -1
- data/spec/support/models/publication/review.rb +0 -1
- data/spec/support/models/publication.rb +0 -1
- data/spec/support/models/purchase.rb +0 -1
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +0 -1
- data/spec/support/models/quiz.rb +0 -1
- data/spec/support/models/rating.rb +0 -1
- data/spec/support/models/record.rb +0 -1
- data/spec/support/models/registry.rb +0 -1
- data/spec/support/models/role.rb +0 -1
- data/spec/support/models/root_category.rb +0 -1
- data/spec/support/models/sandwich.rb +0 -1
- data/spec/support/models/scheduler.rb +0 -1
- data/spec/support/models/scribe.rb +0 -1
- data/spec/support/models/sealer.rb +0 -1
- data/spec/support/models/seat.rb +0 -1
- data/spec/support/models/seo.rb +0 -1
- data/spec/support/models/series.rb +0 -1
- data/spec/support/models/server.rb +0 -1
- data/spec/support/models/service.rb +0 -1
- data/spec/support/models/shape.rb +0 -1
- data/spec/support/models/shelf.rb +0 -1
- data/spec/support/models/shipment_address.rb +0 -1
- data/spec/support/models/shipping_container.rb +0 -1
- data/spec/support/models/shipping_pack.rb +0 -1
- data/spec/support/models/shirt.rb +0 -1
- data/spec/support/models/shop.rb +0 -1
- data/spec/support/models/short_agent.rb +0 -1
- data/spec/support/models/short_quiz.rb +0 -1
- data/spec/support/models/simple.rb +0 -1
- data/spec/support/models/slave.rb +0 -1
- data/spec/support/models/song.rb +0 -1
- data/spec/support/models/sound.rb +0 -1
- data/spec/support/models/spacer.rb +0 -1
- data/spec/support/models/square.rb +0 -1
- data/spec/support/models/staff.rb +0 -1
- data/spec/support/models/store_as_dup_test1.rb +0 -1
- data/spec/support/models/store_as_dup_test2.rb +0 -1
- data/spec/support/models/store_as_dup_test3.rb +0 -1
- data/spec/support/models/store_as_dup_test4.rb +0 -1
- data/spec/support/models/strategy.rb +0 -1
- data/spec/support/models/sub_item.rb +0 -1
- data/spec/support/models/subscription.rb +0 -1
- data/spec/support/models/survey.rb +0 -1
- data/spec/support/models/symptom.rb +0 -1
- data/spec/support/models/tag.rb +0 -1
- data/spec/support/models/target.rb +0 -1
- data/spec/support/models/template.rb +0 -1
- data/spec/support/models/thing.rb +0 -1
- data/spec/support/models/threadlocker.rb +0 -1
- data/spec/support/models/title.rb +0 -1
- data/spec/support/models/tool.rb +0 -1
- data/spec/support/models/topping.rb +0 -1
- data/spec/support/models/toy.rb +0 -1
- data/spec/support/models/track.rb +0 -1
- data/spec/support/models/translation.rb +0 -1
- data/spec/support/models/tree.rb +0 -1
- data/spec/support/models/truck.rb +0 -1
- data/spec/support/models/updatable.rb +0 -1
- data/spec/support/models/user.rb +0 -1
- data/spec/support/models/user_account.rb +0 -1
- data/spec/support/models/validation_callback.rb +0 -1
- data/spec/support/models/vehicle.rb +0 -1
- data/spec/support/models/version.rb +0 -1
- data/spec/support/models/vertex.rb +0 -1
- data/spec/support/models/vet_visit.rb +0 -1
- data/spec/support/models/video.rb +0 -1
- data/spec/support/models/video_game.rb +0 -1
- data/spec/support/models/washer.rb +0 -1
- data/spec/support/models/weapon.rb +0 -1
- data/spec/support/models/wiki_page.rb +0 -1
- data/spec/support/models/word.rb +0 -1
- data/spec/support/models/word_origin.rb +0 -1
- data/spec/support/models/writer.rb +0 -1
- 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 +7 -1
- data.tar.gz.sig +0 -0
- metadata +630 -587
- metadata.gz.sig +0 -0
- data/lib/support/ruby_version.rb +0 -29
- data/spec/support/session_registry.rb +0 -50
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "spec_helper"
|
|
5
4
|
|
|
@@ -27,7 +26,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
27
26
|
context "when the inverse_of is nil" do
|
|
28
27
|
|
|
29
28
|
let!(:article) do
|
|
30
|
-
Article.create
|
|
29
|
+
Article.create!
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
context "when the child document is new" do
|
|
@@ -48,7 +47,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
48
47
|
context "when the child document is not new" do
|
|
49
48
|
|
|
50
49
|
let(:preference) do
|
|
51
|
-
Preference.create
|
|
50
|
+
Preference.create!
|
|
52
51
|
end
|
|
53
52
|
|
|
54
53
|
it "does not persist the child document" do
|
|
@@ -80,7 +79,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
80
79
|
context "when the parent is not a new record" do
|
|
81
80
|
|
|
82
81
|
let(:person) do
|
|
83
|
-
Person.create
|
|
82
|
+
Person.create!
|
|
84
83
|
end
|
|
85
84
|
|
|
86
85
|
let!(:preference) do
|
|
@@ -124,11 +123,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
124
123
|
context "when appending in a parent create block" do
|
|
125
124
|
|
|
126
125
|
let!(:preference) do
|
|
127
|
-
Preference.create(name: "testing")
|
|
126
|
+
Preference.create!(name: "testing")
|
|
128
127
|
end
|
|
129
128
|
|
|
130
129
|
let!(:person) do
|
|
131
|
-
Person.create do |doc|
|
|
130
|
+
Person.create! do |doc|
|
|
132
131
|
doc.preferences << preference
|
|
133
132
|
end
|
|
134
133
|
end
|
|
@@ -213,7 +212,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
213
212
|
context "when the child is already persisted" do
|
|
214
213
|
|
|
215
214
|
let!(:persisted) do
|
|
216
|
-
Preference.create(name: "testy")
|
|
215
|
+
Preference.create!(name: "testy")
|
|
217
216
|
end
|
|
218
217
|
|
|
219
218
|
let(:preference) do
|
|
@@ -222,7 +221,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
222
221
|
|
|
223
222
|
before do
|
|
224
223
|
person.preferences.send(method, preference)
|
|
225
|
-
person.save
|
|
224
|
+
person.save!
|
|
226
225
|
end
|
|
227
226
|
|
|
228
227
|
it "adds the documents to the relation" do
|
|
@@ -253,7 +252,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
253
252
|
context "when setting via the associated ids" do
|
|
254
253
|
|
|
255
254
|
let!(:persisted) do
|
|
256
|
-
Preference.create(name: "testy")
|
|
255
|
+
Preference.create!(name: "testy")
|
|
257
256
|
end
|
|
258
257
|
|
|
259
258
|
let(:preference) do
|
|
@@ -265,7 +264,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
265
264
|
end
|
|
266
265
|
|
|
267
266
|
before do
|
|
268
|
-
person.save
|
|
267
|
+
person.save!
|
|
269
268
|
end
|
|
270
269
|
|
|
271
270
|
it "adds the documents to the relation" do
|
|
@@ -293,7 +292,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
293
292
|
context "when the parent is not a new record" do
|
|
294
293
|
|
|
295
294
|
let(:person) do
|
|
296
|
-
Person.create
|
|
295
|
+
Person.create!
|
|
297
296
|
end
|
|
298
297
|
|
|
299
298
|
let(:preference) do
|
|
@@ -375,11 +374,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
375
374
|
context "when both sides have been persisted" do
|
|
376
375
|
|
|
377
376
|
let(:person) do
|
|
378
|
-
Person.create
|
|
377
|
+
Person.create!
|
|
379
378
|
end
|
|
380
379
|
|
|
381
380
|
let(:event) do
|
|
382
|
-
Event.create
|
|
381
|
+
Event.create!
|
|
383
382
|
end
|
|
384
383
|
|
|
385
384
|
before do
|
|
@@ -428,15 +427,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
428
427
|
context "when the relation also includes a has_many relation" do
|
|
429
428
|
|
|
430
429
|
let(:artwork) do
|
|
431
|
-
Artwork.create
|
|
430
|
+
Artwork.create!
|
|
432
431
|
end
|
|
433
432
|
|
|
434
433
|
let(:exhibition) do
|
|
435
|
-
Exhibition.create
|
|
434
|
+
Exhibition.create!
|
|
436
435
|
end
|
|
437
436
|
|
|
438
437
|
let(:exhibitor) do
|
|
439
|
-
Exhibitor.create(exhibition: exhibition)
|
|
438
|
+
Exhibitor.create!(exhibition: exhibition)
|
|
440
439
|
end
|
|
441
440
|
|
|
442
441
|
before do
|
|
@@ -451,11 +450,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
451
450
|
context "when the relation is self referencing" do
|
|
452
451
|
|
|
453
452
|
let(:tag_one) do
|
|
454
|
-
Tag.create(text: "one")
|
|
453
|
+
Tag.create!(text: "one")
|
|
455
454
|
end
|
|
456
455
|
|
|
457
456
|
let(:tag_two) do
|
|
458
|
-
Tag.create(text: "two")
|
|
457
|
+
Tag.create!(text: "two")
|
|
459
458
|
end
|
|
460
459
|
|
|
461
460
|
before do
|
|
@@ -564,7 +563,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
564
563
|
end
|
|
565
564
|
|
|
566
565
|
let(:preference) do
|
|
567
|
-
Preference.create(name: "one")
|
|
566
|
+
Preference.create!(name: "one")
|
|
568
567
|
end
|
|
569
568
|
|
|
570
569
|
before do
|
|
@@ -585,7 +584,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
585
584
|
context "when the document is persisted" do
|
|
586
585
|
|
|
587
586
|
before do
|
|
588
|
-
person.save
|
|
587
|
+
person.save!
|
|
589
588
|
end
|
|
590
589
|
|
|
591
590
|
it "does not add the duplicates" do
|
|
@@ -656,7 +655,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
656
655
|
end
|
|
657
656
|
|
|
658
657
|
let!(:preference) do
|
|
659
|
-
Preference.create
|
|
658
|
+
Preference.create!
|
|
660
659
|
end
|
|
661
660
|
|
|
662
661
|
before do
|
|
@@ -703,7 +702,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
703
702
|
context "when the parent is not a new record" do
|
|
704
703
|
|
|
705
704
|
let(:person) do
|
|
706
|
-
Person.create
|
|
705
|
+
Person.create!
|
|
707
706
|
end
|
|
708
707
|
|
|
709
708
|
let(:preference) do
|
|
@@ -787,7 +786,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
787
786
|
expect(person.preferences).to eq([ another_preference ])
|
|
788
787
|
end
|
|
789
788
|
|
|
790
|
-
it "persists the relation between
|
|
789
|
+
it "persists the relation between another_preference and person" do
|
|
791
790
|
expect(another_preference.people).to eq([ person ])
|
|
792
791
|
end
|
|
793
792
|
|
|
@@ -799,7 +798,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
799
798
|
context "and person is saved" do
|
|
800
799
|
|
|
801
800
|
before do
|
|
802
|
-
person.save
|
|
801
|
+
person.save!
|
|
803
802
|
person.reload
|
|
804
803
|
another_preference.reload
|
|
805
804
|
end
|
|
@@ -808,7 +807,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
808
807
|
expect(person.preferences).to eq([ another_preference ])
|
|
809
808
|
end
|
|
810
809
|
|
|
811
|
-
it "persists the relation between
|
|
810
|
+
it "persists the relation between another_preference and person" do
|
|
812
811
|
expect(another_preference.people).to eq([ person ])
|
|
813
812
|
end
|
|
814
813
|
|
|
@@ -823,11 +822,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
823
822
|
|
|
824
823
|
describe "when self-referencing" do
|
|
825
824
|
let!(:parent) do
|
|
826
|
-
Vertex.create
|
|
825
|
+
Vertex.create!
|
|
827
826
|
end
|
|
828
827
|
|
|
829
828
|
let!(:child) do
|
|
830
|
-
Vertex.create(parents: [parent])
|
|
829
|
+
Vertex.create!(parents: [parent])
|
|
831
830
|
end
|
|
832
831
|
|
|
833
832
|
before do
|
|
@@ -964,7 +963,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
964
963
|
context "when the relation has been loaded" do
|
|
965
964
|
|
|
966
965
|
let(:person) do
|
|
967
|
-
Person.create
|
|
966
|
+
Person.create!
|
|
968
967
|
end
|
|
969
968
|
|
|
970
969
|
let(:preference) do
|
|
@@ -1004,7 +1003,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1004
1003
|
end
|
|
1005
1004
|
|
|
1006
1005
|
let(:person) do
|
|
1007
|
-
Person.create
|
|
1006
|
+
Person.create!.tap do |p|
|
|
1008
1007
|
p.preferences = [ preference ]
|
|
1009
1008
|
end
|
|
1010
1009
|
end
|
|
@@ -1074,7 +1073,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1074
1073
|
context "when the parent is not a new record" do
|
|
1075
1074
|
|
|
1076
1075
|
let(:person) do
|
|
1077
|
-
Person.create
|
|
1076
|
+
Person.create!
|
|
1078
1077
|
end
|
|
1079
1078
|
|
|
1080
1079
|
let!(:preference) do
|
|
@@ -1112,7 +1111,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1112
1111
|
context "when saving the target" do
|
|
1113
1112
|
|
|
1114
1113
|
before do
|
|
1115
|
-
preference.save
|
|
1114
|
+
preference.save!
|
|
1116
1115
|
end
|
|
1117
1116
|
|
|
1118
1117
|
it "persists the parent keys" do
|
|
@@ -1131,13 +1130,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1131
1130
|
context "when the parent has been persisted" do
|
|
1132
1131
|
|
|
1133
1132
|
let!(:person) do
|
|
1134
|
-
Person.create
|
|
1133
|
+
Person.create!
|
|
1135
1134
|
end
|
|
1136
1135
|
|
|
1137
1136
|
context "when the children are persisted" do
|
|
1138
1137
|
|
|
1139
1138
|
let!(:preference) do
|
|
1140
|
-
person.preferences.create(name: "settings")
|
|
1139
|
+
person.preferences.create!(name: "settings")
|
|
1141
1140
|
end
|
|
1142
1141
|
|
|
1143
1142
|
let!(:relation) do
|
|
@@ -1309,7 +1308,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1309
1308
|
context "when the parent is not a new record" do
|
|
1310
1309
|
|
|
1311
1310
|
let(:person) do
|
|
1312
|
-
Person.create
|
|
1311
|
+
Person.create!
|
|
1313
1312
|
end
|
|
1314
1313
|
|
|
1315
1314
|
let!(:preference) do
|
|
@@ -1353,11 +1352,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1353
1352
|
context "when appending in a parent create block" do
|
|
1354
1353
|
|
|
1355
1354
|
let!(:preference) do
|
|
1356
|
-
Preference.create(name: "testing")
|
|
1355
|
+
Preference.create!(name: "testing")
|
|
1357
1356
|
end
|
|
1358
1357
|
|
|
1359
1358
|
let!(:person) do
|
|
1360
|
-
Person.create do |doc|
|
|
1359
|
+
Person.create! do |doc|
|
|
1361
1360
|
doc.preferences.concat([ preference ])
|
|
1362
1361
|
end
|
|
1363
1362
|
end
|
|
@@ -1442,7 +1441,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1442
1441
|
context "when the child is already persisted" do
|
|
1443
1442
|
|
|
1444
1443
|
let!(:persisted) do
|
|
1445
|
-
Preference.create(name: "testy")
|
|
1444
|
+
Preference.create!(name: "testy")
|
|
1446
1445
|
end
|
|
1447
1446
|
|
|
1448
1447
|
let(:preference) do
|
|
@@ -1451,7 +1450,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1451
1450
|
|
|
1452
1451
|
before do
|
|
1453
1452
|
person.preferences.concat([ preference ])
|
|
1454
|
-
person.save
|
|
1453
|
+
person.save!
|
|
1455
1454
|
end
|
|
1456
1455
|
|
|
1457
1456
|
it "adds the documents to the relation" do
|
|
@@ -1482,7 +1481,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1482
1481
|
context "when setting via the associated ids" do
|
|
1483
1482
|
|
|
1484
1483
|
let!(:persisted) do
|
|
1485
|
-
Preference.create(name: "testy")
|
|
1484
|
+
Preference.create!(name: "testy")
|
|
1486
1485
|
end
|
|
1487
1486
|
|
|
1488
1487
|
let(:preference) do
|
|
@@ -1494,7 +1493,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1494
1493
|
end
|
|
1495
1494
|
|
|
1496
1495
|
before do
|
|
1497
|
-
person.save
|
|
1496
|
+
person.save!
|
|
1498
1497
|
end
|
|
1499
1498
|
|
|
1500
1499
|
it "adds the documents to the relation" do
|
|
@@ -1522,7 +1521,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1522
1521
|
context "when the parent is not a new record" do
|
|
1523
1522
|
|
|
1524
1523
|
let(:person) do
|
|
1525
|
-
Person.create
|
|
1524
|
+
Person.create!
|
|
1526
1525
|
end
|
|
1527
1526
|
|
|
1528
1527
|
let(:preference) do
|
|
@@ -1604,11 +1603,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1604
1603
|
context "when both sides have been persisted" do
|
|
1605
1604
|
|
|
1606
1605
|
let(:person) do
|
|
1607
|
-
Person.create
|
|
1606
|
+
Person.create!
|
|
1608
1607
|
end
|
|
1609
1608
|
|
|
1610
1609
|
let(:event) do
|
|
1611
|
-
Event.create
|
|
1610
|
+
Event.create!
|
|
1612
1611
|
end
|
|
1613
1612
|
|
|
1614
1613
|
before do
|
|
@@ -1657,15 +1656,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1657
1656
|
context "when the relation also includes a has_many relation" do
|
|
1658
1657
|
|
|
1659
1658
|
let(:artwork) do
|
|
1660
|
-
Artwork.create
|
|
1659
|
+
Artwork.create!
|
|
1661
1660
|
end
|
|
1662
1661
|
|
|
1663
1662
|
let(:exhibition) do
|
|
1664
|
-
Exhibition.create
|
|
1663
|
+
Exhibition.create!
|
|
1665
1664
|
end
|
|
1666
1665
|
|
|
1667
1666
|
let(:exhibitor) do
|
|
1668
|
-
Exhibitor.create(exhibition: exhibition)
|
|
1667
|
+
Exhibitor.create!(exhibition: exhibition)
|
|
1669
1668
|
end
|
|
1670
1669
|
|
|
1671
1670
|
before do
|
|
@@ -1680,11 +1679,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1680
1679
|
context "when the relation is self referencing" do
|
|
1681
1680
|
|
|
1682
1681
|
let(:tag_one) do
|
|
1683
|
-
Tag.create(text: "one")
|
|
1682
|
+
Tag.create!(text: "one")
|
|
1684
1683
|
end
|
|
1685
1684
|
|
|
1686
1685
|
let(:tag_two) do
|
|
1687
|
-
Tag.create(text: "two")
|
|
1686
|
+
Tag.create!(text: "two")
|
|
1688
1687
|
end
|
|
1689
1688
|
|
|
1690
1689
|
before do
|
|
@@ -1735,7 +1734,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1735
1734
|
describe "#count" do
|
|
1736
1735
|
|
|
1737
1736
|
let(:person) do
|
|
1738
|
-
Person.create
|
|
1737
|
+
Person.create!
|
|
1739
1738
|
end
|
|
1740
1739
|
|
|
1741
1740
|
context "when nothing exists on the relation" do
|
|
@@ -1760,7 +1759,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1760
1759
|
describe "#any?" do
|
|
1761
1760
|
|
|
1762
1761
|
let(:person) do
|
|
1763
|
-
Person.create
|
|
1762
|
+
Person.create!
|
|
1764
1763
|
end
|
|
1765
1764
|
|
|
1766
1765
|
context "when nothing exists on the relation" do
|
|
@@ -1797,7 +1796,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1797
1796
|
context "when documents have been persisted" do
|
|
1798
1797
|
|
|
1799
1798
|
let!(:preference) do
|
|
1800
|
-
person.preferences.create(name: "setting")
|
|
1799
|
+
person.preferences.create!(name: "setting")
|
|
1801
1800
|
end
|
|
1802
1801
|
|
|
1803
1802
|
it "returns the number of persisted documents" do
|
|
@@ -1808,12 +1807,12 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1808
1807
|
context "when appending to a loaded relation" do
|
|
1809
1808
|
|
|
1810
1809
|
let!(:preference) do
|
|
1811
|
-
person.preferences.create(name: "setting")
|
|
1810
|
+
person.preferences.create!(name: "setting")
|
|
1812
1811
|
end
|
|
1813
1812
|
|
|
1814
1813
|
before do
|
|
1815
1814
|
person.preferences.count
|
|
1816
|
-
person.preferences << Preference.create(name: "two")
|
|
1815
|
+
person.preferences << Preference.create!(name: "two")
|
|
1817
1816
|
end
|
|
1818
1817
|
|
|
1819
1818
|
it "returns the number of persisted documents" do
|
|
@@ -1837,7 +1836,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1837
1836
|
context "when the documents are part of the relation" do
|
|
1838
1837
|
|
|
1839
1838
|
before do
|
|
1840
|
-
Preference.create(person_ids: [ person.id ])
|
|
1839
|
+
Preference.create!(person_ids: [ person.id ])
|
|
1841
1840
|
end
|
|
1842
1841
|
|
|
1843
1842
|
it "returns the count from the db" do
|
|
@@ -1848,7 +1847,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1848
1847
|
context "when the documents are not part of the relation" do
|
|
1849
1848
|
|
|
1850
1849
|
before do
|
|
1851
|
-
Preference.create
|
|
1850
|
+
Preference.create!
|
|
1852
1851
|
end
|
|
1853
1852
|
|
|
1854
1853
|
it "returns the count from the db" do
|
|
@@ -1862,7 +1861,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1862
1861
|
context "when documents have been persisted" do
|
|
1863
1862
|
|
|
1864
1863
|
let!(:house) do
|
|
1865
|
-
person.houses.create(name: "Wayne Manor")
|
|
1864
|
+
person.houses.create!(name: "Wayne Manor")
|
|
1866
1865
|
end
|
|
1867
1866
|
|
|
1868
1867
|
it "returns the number of persisted documents" do
|
|
@@ -1886,7 +1885,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1886
1885
|
describe "#any?" do
|
|
1887
1886
|
|
|
1888
1887
|
let(:sandwich) do
|
|
1889
|
-
Sandwich.create
|
|
1888
|
+
Sandwich.create!
|
|
1890
1889
|
end
|
|
1891
1890
|
|
|
1892
1891
|
context "when nothing exists on the relation" do
|
|
@@ -1954,7 +1953,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1954
1953
|
context "when documents have been persisted" do
|
|
1955
1954
|
|
|
1956
1955
|
let!(:meat) do
|
|
1957
|
-
sandwich.meats.create
|
|
1956
|
+
sandwich.meats.create!
|
|
1958
1957
|
end
|
|
1959
1958
|
|
|
1960
1959
|
it "returns true" do
|
|
@@ -1975,7 +1974,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1975
1974
|
|
|
1976
1975
|
context "when new documents exist in the database" do
|
|
1977
1976
|
before do
|
|
1978
|
-
Meat.create(sandwiches: [sandwich])
|
|
1977
|
+
Meat.create!(sandwiches: [sandwich])
|
|
1979
1978
|
end
|
|
1980
1979
|
|
|
1981
1980
|
it "returns true" do
|
|
@@ -1993,15 +1992,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
1993
1992
|
context "when using string keys" do
|
|
1994
1993
|
|
|
1995
1994
|
let(:agent) do
|
|
1996
|
-
Agent.create(number: "007")
|
|
1995
|
+
Agent.create!(number: "007")
|
|
1997
1996
|
end
|
|
1998
1997
|
|
|
1999
1998
|
before do
|
|
2000
|
-
agent.accounts.
|
|
1999
|
+
agent.accounts.send(method, name: "test again")
|
|
2001
2000
|
end
|
|
2002
2001
|
|
|
2003
2002
|
it "does not convert the string key to an object id" do
|
|
2004
|
-
expect(agent.account_ids).to eq([ "
|
|
2003
|
+
expect(agent.account_ids).to eq([ "test-again" ])
|
|
2005
2004
|
end
|
|
2006
2005
|
end
|
|
2007
2006
|
|
|
@@ -2073,7 +2072,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2073
2072
|
context "when validation fails" do
|
|
2074
2073
|
|
|
2075
2074
|
let(:person) do
|
|
2076
|
-
Person.create
|
|
2075
|
+
Person.create!
|
|
2077
2076
|
end
|
|
2078
2077
|
|
|
2079
2078
|
context "when the relation is not polymorphic" do
|
|
@@ -2090,15 +2089,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2090
2089
|
describe "#delete" do
|
|
2091
2090
|
|
|
2092
2091
|
let(:person) do
|
|
2093
|
-
Person.create
|
|
2092
|
+
Person.create!
|
|
2094
2093
|
end
|
|
2095
2094
|
|
|
2096
2095
|
let(:preference_one) do
|
|
2097
|
-
Preference.create(name: "Testing")
|
|
2096
|
+
Preference.create!(name: "Testing")
|
|
2098
2097
|
end
|
|
2099
2098
|
|
|
2100
2099
|
let(:preference_two) do
|
|
2101
|
-
Preference.create(name: "Test")
|
|
2100
|
+
Preference.create!(name: "Test")
|
|
2102
2101
|
end
|
|
2103
2102
|
|
|
2104
2103
|
before do
|
|
@@ -2173,7 +2172,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2173
2172
|
context "when :inverse_of is set" do
|
|
2174
2173
|
|
|
2175
2174
|
let(:event) do
|
|
2176
|
-
Event.create
|
|
2175
|
+
Event.create!
|
|
2177
2176
|
end
|
|
2178
2177
|
|
|
2179
2178
|
before do
|
|
@@ -2189,11 +2188,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2189
2188
|
context "when the relationships are self referencing" do
|
|
2190
2189
|
|
|
2191
2190
|
let(:tag_one) do
|
|
2192
|
-
Tag.create(text: "one")
|
|
2191
|
+
Tag.create!(text: "one")
|
|
2193
2192
|
end
|
|
2194
2193
|
|
|
2195
2194
|
let(:tag_two) do
|
|
2196
|
-
Tag.create(text: "two")
|
|
2195
|
+
Tag.create!(text: "two")
|
|
2197
2196
|
end
|
|
2198
2197
|
|
|
2199
2198
|
before do
|
|
@@ -2362,15 +2361,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2362
2361
|
context "when conditions are provided" do
|
|
2363
2362
|
|
|
2364
2363
|
let(:person) do
|
|
2365
|
-
Person.create
|
|
2364
|
+
Person.create!
|
|
2366
2365
|
end
|
|
2367
2366
|
|
|
2368
2367
|
let!(:preference_one) do
|
|
2369
|
-
person.preferences.create(name: "Testing")
|
|
2368
|
+
person.preferences.create!(name: "Testing")
|
|
2370
2369
|
end
|
|
2371
2370
|
|
|
2372
2371
|
let!(:preference_two) do
|
|
2373
|
-
person.preferences.create(name: "Test")
|
|
2372
|
+
person.preferences.create!(name: "Test")
|
|
2374
2373
|
end
|
|
2375
2374
|
|
|
2376
2375
|
let!(:deleted) do
|
|
@@ -2395,14 +2394,18 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2395
2394
|
it "removes the ids from the foreign key" do
|
|
2396
2395
|
expect(person.preference_ids).to eq([ preference_two.id ])
|
|
2397
2396
|
end
|
|
2397
|
+
|
|
2398
|
+
it "sets the association locally" do
|
|
2399
|
+
expect(person.preferences).to eq([preference_two])
|
|
2400
|
+
end
|
|
2398
2401
|
end
|
|
2399
2402
|
|
|
2400
2403
|
context "when conditions are not provided" do
|
|
2401
2404
|
|
|
2402
2405
|
let(:person) do
|
|
2403
|
-
Person.create
|
|
2404
|
-
person.preferences.create(name: "Testing")
|
|
2405
|
-
person.preferences.create(name: "Test")
|
|
2406
|
+
Person.create!.tap do |person|
|
|
2407
|
+
person.preferences.create!(name: "Testing")
|
|
2408
|
+
person.preferences.create!(name: "Test")
|
|
2406
2409
|
end
|
|
2407
2410
|
end
|
|
2408
2411
|
|
|
@@ -2421,6 +2424,10 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2421
2424
|
it "returns the number of documents deleted" do
|
|
2422
2425
|
expect(deleted).to eq(2)
|
|
2423
2426
|
end
|
|
2427
|
+
|
|
2428
|
+
it "sets the association locally" do
|
|
2429
|
+
expect(person.preferences).to eq([])
|
|
2430
|
+
end
|
|
2424
2431
|
end
|
|
2425
2432
|
end
|
|
2426
2433
|
end
|
|
@@ -2436,13 +2443,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2436
2443
|
describe "#exists?" do
|
|
2437
2444
|
|
|
2438
2445
|
let!(:person) do
|
|
2439
|
-
Person.create
|
|
2446
|
+
Person.create!
|
|
2440
2447
|
end
|
|
2441
2448
|
|
|
2442
2449
|
context "when documents exist in the database" do
|
|
2443
2450
|
|
|
2444
2451
|
before do
|
|
2445
|
-
person.preferences.create
|
|
2452
|
+
person.preferences.create!
|
|
2446
2453
|
end
|
|
2447
2454
|
|
|
2448
2455
|
it "returns true" do
|
|
@@ -2467,23 +2474,23 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2467
2474
|
context "when the relation is not polymorphic" do
|
|
2468
2475
|
|
|
2469
2476
|
let(:person) do
|
|
2470
|
-
Person.create
|
|
2477
|
+
Person.create!
|
|
2471
2478
|
end
|
|
2472
2479
|
|
|
2473
2480
|
let!(:preference_one) do
|
|
2474
|
-
person.preferences.create(name: "Test")
|
|
2481
|
+
person.preferences.create!(name: "Test")
|
|
2475
2482
|
end
|
|
2476
2483
|
|
|
2477
2484
|
let!(:preference_two) do
|
|
2478
|
-
person.preferences.create(name: "OMG I has relations")
|
|
2485
|
+
person.preferences.create!(name: "OMG I has relations")
|
|
2479
2486
|
end
|
|
2480
2487
|
|
|
2481
2488
|
let!(:unrelated_pref) do
|
|
2482
|
-
Preference.create(name: "orphan annie")
|
|
2489
|
+
Preference.create!(name: "orphan annie")
|
|
2483
2490
|
end
|
|
2484
2491
|
|
|
2485
2492
|
let!(:unrelated_pref_two) do
|
|
2486
|
-
Preference.create(name: "orphan two")
|
|
2493
|
+
Preference.create!(name: "orphan two")
|
|
2487
2494
|
end
|
|
2488
2495
|
|
|
2489
2496
|
context "when providing an id" do
|
|
@@ -2561,7 +2568,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2561
2568
|
end
|
|
2562
2569
|
end
|
|
2563
2570
|
|
|
2564
|
-
context "when the ids
|
|
2571
|
+
context "when the ids match unreferenced documents" do
|
|
2565
2572
|
|
|
2566
2573
|
let(:preferences) do
|
|
2567
2574
|
person.preferences.find(
|
|
@@ -2619,11 +2626,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2619
2626
|
context "when the relation is not polymorphic" do
|
|
2620
2627
|
|
|
2621
2628
|
let(:person) do
|
|
2622
|
-
Person.create
|
|
2629
|
+
Person.create!
|
|
2623
2630
|
end
|
|
2624
2631
|
|
|
2625
2632
|
let!(:preference) do
|
|
2626
|
-
person.preferences.create(name: "Testing")
|
|
2633
|
+
person.preferences.create!(name: "Testing")
|
|
2627
2634
|
end
|
|
2628
2635
|
|
|
2629
2636
|
context "when the document exists" do
|
|
@@ -2659,11 +2666,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2659
2666
|
context "when the relation is not polymorphic" do
|
|
2660
2667
|
|
|
2661
2668
|
let(:person) do
|
|
2662
|
-
Person.create
|
|
2669
|
+
Person.create!
|
|
2663
2670
|
end
|
|
2664
2671
|
|
|
2665
2672
|
let!(:preference) do
|
|
2666
|
-
person.preferences.create(name: "Testing")
|
|
2673
|
+
person.preferences.create!(name: "Testing")
|
|
2667
2674
|
end
|
|
2668
2675
|
|
|
2669
2676
|
context "when the document exists" do
|
|
@@ -2708,11 +2715,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2708
2715
|
context "when the relation is not polymorphic" do
|
|
2709
2716
|
|
|
2710
2717
|
let(:person) do
|
|
2711
|
-
Person.create
|
|
2718
|
+
Person.create!
|
|
2712
2719
|
end
|
|
2713
2720
|
|
|
2714
2721
|
let!(:preference) do
|
|
2715
|
-
person.preferences.create(name: "Testing")
|
|
2722
|
+
person.preferences.create!(name: "Testing")
|
|
2716
2723
|
end
|
|
2717
2724
|
|
|
2718
2725
|
context "when the document exists" do
|
|
@@ -2746,15 +2753,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2746
2753
|
describe "#max" do
|
|
2747
2754
|
|
|
2748
2755
|
let(:person) do
|
|
2749
|
-
Person.create
|
|
2756
|
+
Person.create!
|
|
2750
2757
|
end
|
|
2751
2758
|
|
|
2752
2759
|
let(:preference_one) do
|
|
2753
|
-
Preference.create(ranking: 5)
|
|
2760
|
+
Preference.create!(ranking: 5)
|
|
2754
2761
|
end
|
|
2755
2762
|
|
|
2756
2763
|
let(:preference_two) do
|
|
2757
|
-
Preference.create(ranking: 10)
|
|
2764
|
+
Preference.create!(ranking: 10)
|
|
2758
2765
|
end
|
|
2759
2766
|
|
|
2760
2767
|
before do
|
|
@@ -2775,15 +2782,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2775
2782
|
describe "#max_by" do
|
|
2776
2783
|
|
|
2777
2784
|
let(:person) do
|
|
2778
|
-
Person.create
|
|
2785
|
+
Person.create!
|
|
2779
2786
|
end
|
|
2780
2787
|
|
|
2781
2788
|
let(:preference_one) do
|
|
2782
|
-
Preference.create(ranking: 5)
|
|
2789
|
+
Preference.create!(ranking: 5)
|
|
2783
2790
|
end
|
|
2784
2791
|
|
|
2785
2792
|
let(:preference_two) do
|
|
2786
|
-
Preference.create(ranking: 10)
|
|
2793
|
+
Preference.create!(ranking: 10)
|
|
2787
2794
|
end
|
|
2788
2795
|
|
|
2789
2796
|
before do
|
|
@@ -2802,19 +2809,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2802
2809
|
describe "#method_missing" do
|
|
2803
2810
|
|
|
2804
2811
|
let!(:person) do
|
|
2805
|
-
Person.create
|
|
2812
|
+
Person.create!
|
|
2806
2813
|
end
|
|
2807
2814
|
|
|
2808
2815
|
let!(:preference_one) do
|
|
2809
|
-
person.preferences.create(name: "First", value: "Posting")
|
|
2816
|
+
person.preferences.create!(name: "First", value: "Posting")
|
|
2810
2817
|
end
|
|
2811
2818
|
|
|
2812
2819
|
let!(:preference_two) do
|
|
2813
|
-
person.preferences.create(name: "Second", value: "Testing")
|
|
2820
|
+
person.preferences.create!(name: "Second", value: "Testing")
|
|
2814
2821
|
end
|
|
2815
2822
|
|
|
2816
2823
|
let!(:unrelated) do
|
|
2817
|
-
Preference.create(name: "Third")
|
|
2824
|
+
Preference.create!(name: "Third")
|
|
2818
2825
|
end
|
|
2819
2826
|
|
|
2820
2827
|
context "when providing a single criteria" do
|
|
@@ -2889,7 +2896,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2889
2896
|
context "when the inverse relation is not defined" do
|
|
2890
2897
|
|
|
2891
2898
|
let!(:house) do
|
|
2892
|
-
person.houses.create(name: "Wayne Manor")
|
|
2899
|
+
person.houses.create!(name: "Wayne Manor")
|
|
2893
2900
|
end
|
|
2894
2901
|
|
|
2895
2902
|
it "returns the distinct values for the fields" do
|
|
@@ -2903,15 +2910,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2903
2910
|
describe "#min" do
|
|
2904
2911
|
|
|
2905
2912
|
let(:person) do
|
|
2906
|
-
Person.create
|
|
2913
|
+
Person.create!
|
|
2907
2914
|
end
|
|
2908
2915
|
|
|
2909
2916
|
let(:preference_one) do
|
|
2910
|
-
Preference.create(ranking: 5)
|
|
2917
|
+
Preference.create!(ranking: 5)
|
|
2911
2918
|
end
|
|
2912
2919
|
|
|
2913
2920
|
let(:preference_two) do
|
|
2914
|
-
Preference.create(ranking: 10)
|
|
2921
|
+
Preference.create!(ranking: 10)
|
|
2915
2922
|
end
|
|
2916
2923
|
|
|
2917
2924
|
before do
|
|
@@ -2932,15 +2939,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2932
2939
|
describe "#min_by" do
|
|
2933
2940
|
|
|
2934
2941
|
let(:person) do
|
|
2935
|
-
Person.create
|
|
2942
|
+
Person.create!
|
|
2936
2943
|
end
|
|
2937
2944
|
|
|
2938
2945
|
let(:preference_one) do
|
|
2939
|
-
Preference.create(ranking: 5)
|
|
2946
|
+
Preference.create!(ranking: 5)
|
|
2940
2947
|
end
|
|
2941
2948
|
|
|
2942
2949
|
let(:preference_two) do
|
|
2943
|
-
Preference.create(ranking: 10)
|
|
2950
|
+
Preference.create!(ranking: 10)
|
|
2944
2951
|
end
|
|
2945
2952
|
|
|
2946
2953
|
before do
|
|
@@ -2966,15 +2973,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
2966
2973
|
describe "#nullify_all" do
|
|
2967
2974
|
|
|
2968
2975
|
let(:person) do
|
|
2969
|
-
Person.create
|
|
2976
|
+
Person.create!
|
|
2970
2977
|
end
|
|
2971
2978
|
|
|
2972
2979
|
let!(:preference_one) do
|
|
2973
|
-
person.preferences.create(name: "One")
|
|
2980
|
+
person.preferences.create!(name: "One")
|
|
2974
2981
|
end
|
|
2975
2982
|
|
|
2976
2983
|
let!(:preference_two) do
|
|
2977
|
-
person.preferences.create(name: "Two")
|
|
2984
|
+
person.preferences.create!(name: "Two")
|
|
2978
2985
|
end
|
|
2979
2986
|
|
|
2980
2987
|
before do
|
|
@@ -3095,13 +3102,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3095
3102
|
describe "##{method}" do
|
|
3096
3103
|
|
|
3097
3104
|
let(:person) do
|
|
3098
|
-
Person.create
|
|
3105
|
+
Person.create!
|
|
3099
3106
|
end
|
|
3100
3107
|
|
|
3101
3108
|
context "when documents have been persisted" do
|
|
3102
3109
|
|
|
3103
3110
|
let!(:preference) do
|
|
3104
|
-
person.preferences.create(name: "Testing")
|
|
3111
|
+
person.preferences.create!(name: "Testing")
|
|
3105
3112
|
end
|
|
3106
3113
|
|
|
3107
3114
|
it "returns the number of documents" do
|
|
@@ -3113,7 +3120,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3113
3120
|
|
|
3114
3121
|
before do
|
|
3115
3122
|
person.preferences.build(name: "Test")
|
|
3116
|
-
person.preferences.create(name: "Test 2")
|
|
3123
|
+
person.preferences.create!(name: "Test 2")
|
|
3117
3124
|
end
|
|
3118
3125
|
|
|
3119
3126
|
it "returns the total number of documents" do
|
|
@@ -3128,15 +3135,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3128
3135
|
context "when the relation has no default scope" do
|
|
3129
3136
|
|
|
3130
3137
|
let!(:person) do
|
|
3131
|
-
Person.create
|
|
3138
|
+
Person.create!
|
|
3132
3139
|
end
|
|
3133
3140
|
|
|
3134
3141
|
let!(:preference_one) do
|
|
3135
|
-
person.preferences.create(name: "first")
|
|
3142
|
+
person.preferences.create!(name: "first")
|
|
3136
3143
|
end
|
|
3137
3144
|
|
|
3138
3145
|
let!(:preference_two) do
|
|
3139
|
-
Preference.create(name: "second")
|
|
3146
|
+
Preference.create!(name: "second")
|
|
3140
3147
|
end
|
|
3141
3148
|
|
|
3142
3149
|
let(:unscoped) do
|
|
@@ -3151,15 +3158,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3151
3158
|
context "when the relation has a default scope" do
|
|
3152
3159
|
|
|
3153
3160
|
let!(:person) do
|
|
3154
|
-
Person.create
|
|
3161
|
+
Person.create!
|
|
3155
3162
|
end
|
|
3156
3163
|
|
|
3157
3164
|
let!(:house_one) do
|
|
3158
|
-
person.houses.create(name: "first")
|
|
3165
|
+
person.houses.create!(name: "first")
|
|
3159
3166
|
end
|
|
3160
3167
|
|
|
3161
3168
|
let!(:house_two) do
|
|
3162
|
-
House.create(name: "second")
|
|
3169
|
+
House.create!(name: "second")
|
|
3163
3170
|
end
|
|
3164
3171
|
|
|
3165
3172
|
let(:unscoped) do
|
|
@@ -3195,10 +3202,10 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3195
3202
|
end
|
|
3196
3203
|
|
|
3197
3204
|
before do
|
|
3198
|
-
person.update_attributes(
|
|
3205
|
+
person.update_attributes!(
|
|
3199
3206
|
houses: [ wife_house, exwife_house, girlfriend_house ]
|
|
3200
3207
|
)
|
|
3201
|
-
person.update_attributes(house_ids: [ girlfriend_house.id ])
|
|
3208
|
+
person.update_attributes!(house_ids: [ girlfriend_house.id ])
|
|
3202
3209
|
end
|
|
3203
3210
|
|
|
3204
3211
|
context "when reloading" do
|
|
@@ -3245,7 +3252,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3245
3252
|
end
|
|
3246
3253
|
|
|
3247
3254
|
let!(:business) do
|
|
3248
|
-
Business.create(name: "serious", owners: [ user ])
|
|
3255
|
+
Business.create!(name: "serious", owners: [ user ])
|
|
3249
3256
|
end
|
|
3250
3257
|
|
|
3251
3258
|
before do
|
|
@@ -3288,11 +3295,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3288
3295
|
context "when the documents are persisted" do
|
|
3289
3296
|
|
|
3290
3297
|
let(:user) do
|
|
3291
|
-
User.create(name: "tst")
|
|
3298
|
+
User.create!(name: "tst")
|
|
3292
3299
|
end
|
|
3293
3300
|
|
|
3294
3301
|
let(:business) do
|
|
3295
|
-
Business.create(name: "srs", owners: [ user ])
|
|
3302
|
+
Business.create!(name: "srs", owners: [ user ])
|
|
3296
3303
|
end
|
|
3297
3304
|
|
|
3298
3305
|
before do
|
|
@@ -3336,11 +3343,11 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3336
3343
|
context "when binding the relation multiple times" do
|
|
3337
3344
|
|
|
3338
3345
|
let(:person) do
|
|
3339
|
-
Person.create
|
|
3346
|
+
Person.create!
|
|
3340
3347
|
end
|
|
3341
3348
|
|
|
3342
3349
|
let(:preference) do
|
|
3343
|
-
person.preferences.create(name: "testing")
|
|
3350
|
+
person.preferences.create!(name: "testing")
|
|
3344
3351
|
end
|
|
3345
3352
|
|
|
3346
3353
|
before do
|
|
@@ -3359,19 +3366,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3359
3366
|
context "when the association has order criteria" do
|
|
3360
3367
|
|
|
3361
3368
|
let(:person) do
|
|
3362
|
-
Person.create
|
|
3369
|
+
Person.create!
|
|
3363
3370
|
end
|
|
3364
3371
|
|
|
3365
3372
|
let(:preference_one) do
|
|
3366
|
-
OrderedPreference.create(name: 'preference-1', value: 10)
|
|
3373
|
+
OrderedPreference.create!(name: 'preference-1', value: 10)
|
|
3367
3374
|
end
|
|
3368
3375
|
|
|
3369
3376
|
let(:preference_two) do
|
|
3370
|
-
OrderedPreference.create(name: 'preference-2', value: 20)
|
|
3377
|
+
OrderedPreference.create!(name: 'preference-2', value: 20)
|
|
3371
3378
|
end
|
|
3372
3379
|
|
|
3373
3380
|
let(:preference_three) do
|
|
3374
|
-
OrderedPreference.create(name: 'preference-3', value: 20)
|
|
3381
|
+
OrderedPreference.create!(name: 'preference-3', value: 20)
|
|
3375
3382
|
end
|
|
3376
3383
|
|
|
3377
3384
|
before do
|
|
@@ -3395,7 +3402,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3395
3402
|
context "when the parent is not a new record and freshly loaded" do
|
|
3396
3403
|
|
|
3397
3404
|
let(:person) do
|
|
3398
|
-
Person.create
|
|
3405
|
+
Person.create!
|
|
3399
3406
|
end
|
|
3400
3407
|
|
|
3401
3408
|
let(:preference) do
|
|
@@ -3404,7 +3411,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3404
3411
|
|
|
3405
3412
|
before do
|
|
3406
3413
|
person.preferences = [ preference ]
|
|
3407
|
-
person.save
|
|
3414
|
+
person.save!
|
|
3408
3415
|
person.reload
|
|
3409
3416
|
person.preferences = nil
|
|
3410
3417
|
end
|
|
@@ -3427,15 +3434,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3427
3434
|
context "when reloading the relation" do
|
|
3428
3435
|
|
|
3429
3436
|
let!(:person) do
|
|
3430
|
-
Person.create
|
|
3437
|
+
Person.create!
|
|
3431
3438
|
end
|
|
3432
3439
|
|
|
3433
3440
|
let!(:preference_one) do
|
|
3434
|
-
Preference.create(name: "one")
|
|
3441
|
+
Preference.create!(name: "one")
|
|
3435
3442
|
end
|
|
3436
3443
|
|
|
3437
3444
|
let!(:preference_two) do
|
|
3438
|
-
Preference.create(name: "two")
|
|
3445
|
+
Preference.create!(name: "two")
|
|
3439
3446
|
end
|
|
3440
3447
|
|
|
3441
3448
|
before do
|
|
@@ -3479,7 +3486,7 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3479
3486
|
context "when the document is new" do
|
|
3480
3487
|
|
|
3481
3488
|
let!(:person) do
|
|
3482
|
-
Person.create(preference_names: "one, two")
|
|
3489
|
+
Person.create!(preference_names: "one, two")
|
|
3483
3490
|
end
|
|
3484
3491
|
|
|
3485
3492
|
let(:preference_one) do
|
|
@@ -3515,23 +3522,23 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3515
3522
|
end
|
|
3516
3523
|
|
|
3517
3524
|
let(:preference_one) do
|
|
3518
|
-
Preference.create(name: "one")
|
|
3525
|
+
Preference.create!(name: "one")
|
|
3519
3526
|
end
|
|
3520
3527
|
|
|
3521
3528
|
let(:preference_two) do
|
|
3522
|
-
Preference.create(name: "two")
|
|
3529
|
+
Preference.create!(name: "two")
|
|
3523
3530
|
end
|
|
3524
3531
|
|
|
3525
3532
|
before do
|
|
3526
3533
|
person.preference_ids = [ preference_one.id, preference_two.id ]
|
|
3527
|
-
person.save
|
|
3534
|
+
person.save!
|
|
3528
3535
|
end
|
|
3529
3536
|
|
|
3530
3537
|
context "and the order is changed" do
|
|
3531
3538
|
|
|
3532
3539
|
before do
|
|
3533
3540
|
person.preference_ids = [ preference_two.id, preference_one.id ]
|
|
3534
|
-
person.save
|
|
3541
|
+
person.save!
|
|
3535
3542
|
end
|
|
3536
3543
|
|
|
3537
3544
|
let(:reloaded) do
|
|
@@ -3548,13 +3555,13 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3548
3555
|
context "and the order is changed and an element is added" do
|
|
3549
3556
|
|
|
3550
3557
|
let(:preference_three) do
|
|
3551
|
-
Preference.create(name: "three")
|
|
3558
|
+
Preference.create!(name: "three")
|
|
3552
3559
|
end
|
|
3553
3560
|
|
|
3554
3561
|
before do
|
|
3555
3562
|
person.preference_ids =
|
|
3556
3563
|
[ preference_two.id, preference_one.id, preference_three.id ]
|
|
3557
|
-
person.save
|
|
3564
|
+
person.save!
|
|
3558
3565
|
end
|
|
3559
3566
|
|
|
3560
3567
|
let(:reloaded) do
|
|
@@ -3571,16 +3578,16 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3571
3578
|
context "and the order is changed and an element is removed" do
|
|
3572
3579
|
|
|
3573
3580
|
let(:preference_three) do
|
|
3574
|
-
Preference.create(name: "three")
|
|
3581
|
+
Preference.create!(name: "three")
|
|
3575
3582
|
end
|
|
3576
3583
|
|
|
3577
3584
|
before do
|
|
3578
3585
|
person.preference_ids =
|
|
3579
3586
|
[ preference_one.id, preference_two.id, preference_three.id ]
|
|
3580
|
-
person.save
|
|
3587
|
+
person.save!
|
|
3581
3588
|
person.preference_ids =
|
|
3582
3589
|
[ preference_three.id, preference_two.id ]
|
|
3583
|
-
person.save
|
|
3590
|
+
person.save!
|
|
3584
3591
|
end
|
|
3585
3592
|
|
|
3586
3593
|
let(:reloaded) do
|
|
@@ -3630,15 +3637,15 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3630
3637
|
context "when the relation exists" do
|
|
3631
3638
|
|
|
3632
3639
|
let!(:person) do
|
|
3633
|
-
Person.create
|
|
3640
|
+
Person.create!
|
|
3634
3641
|
end
|
|
3635
3642
|
|
|
3636
3643
|
let!(:pref_one) do
|
|
3637
|
-
person.preferences.create
|
|
3644
|
+
person.preferences.create!
|
|
3638
3645
|
end
|
|
3639
3646
|
|
|
3640
3647
|
let!(:pref_two) do
|
|
3641
|
-
Preference.create
|
|
3648
|
+
Preference.create!
|
|
3642
3649
|
end
|
|
3643
3650
|
|
|
3644
3651
|
before do
|
|
@@ -3654,15 +3661,19 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3654
3661
|
context "when using a different primary key" do
|
|
3655
3662
|
|
|
3656
3663
|
let(:dog) do
|
|
3657
|
-
Dog.create(name: 'Doggie')
|
|
3664
|
+
Dog.create!(name: 'Doggie')
|
|
3658
3665
|
end
|
|
3659
3666
|
|
|
3660
3667
|
let(:cat) do
|
|
3661
|
-
Cat.create(name: 'Kitty')
|
|
3668
|
+
Cat.create!(name: 'Kitty')
|
|
3669
|
+
end
|
|
3670
|
+
|
|
3671
|
+
let(:another_cat) do
|
|
3672
|
+
Cat.create!(name: 'Kitten')
|
|
3662
3673
|
end
|
|
3663
3674
|
|
|
3664
3675
|
let(:fire_hydrant) do
|
|
3665
|
-
FireHydrant.create(location: '221B Baker Street')
|
|
3676
|
+
FireHydrant.create!(location: '221B Baker Street')
|
|
3666
3677
|
end
|
|
3667
3678
|
|
|
3668
3679
|
context "when adding to a one-way many to many" do
|
|
@@ -3676,6 +3687,28 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3676
3687
|
end
|
|
3677
3688
|
end
|
|
3678
3689
|
|
|
3690
|
+
context "when adding multiple documents to a one-way many to many" do
|
|
3691
|
+
|
|
3692
|
+
before do
|
|
3693
|
+
fire_hydrant.cats.push([cat, another_cat])
|
|
3694
|
+
end
|
|
3695
|
+
|
|
3696
|
+
it "adds the pk values to the fk set" do
|
|
3697
|
+
expect(fire_hydrant.cat_ids).to eq([cat.name, another_cat.name])
|
|
3698
|
+
end
|
|
3699
|
+
end
|
|
3700
|
+
|
|
3701
|
+
context "when adding a new document to a one-way many to many" do
|
|
3702
|
+
|
|
3703
|
+
before do
|
|
3704
|
+
fire_hydrant.cats.build name: 'Kitten'
|
|
3705
|
+
end
|
|
3706
|
+
|
|
3707
|
+
it "adds the pk values to the fk set" do
|
|
3708
|
+
expect(fire_hydrant.cat_ids).to eq(['Kitten'])
|
|
3709
|
+
end
|
|
3710
|
+
end
|
|
3711
|
+
|
|
3679
3712
|
context "when adding to a two-way many to many" do
|
|
3680
3713
|
|
|
3681
3714
|
before do
|
|
@@ -3732,10 +3765,10 @@ describe Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy do
|
|
|
3732
3765
|
end
|
|
3733
3766
|
|
|
3734
3767
|
it "should assign relation from both sides" do
|
|
3735
|
-
p1 = Project.create name: 'Foo'
|
|
3736
|
-
p2 = Project.create name: 'Bar'
|
|
3737
|
-
d1 = Distributor.create name: 'Rock'
|
|
3738
|
-
d2 = Distributor.create name: 'Soul'
|
|
3768
|
+
p1 = Project.create! name: 'Foo'
|
|
3769
|
+
p2 = Project.create! name: 'Bar'
|
|
3770
|
+
d1 = Distributor.create! name: 'Rock'
|
|
3771
|
+
d2 = Distributor.create! name: 'Soul'
|
|
3739
3772
|
|
|
3740
3773
|
p1.distributors << d1
|
|
3741
3774
|
expect(p1.d_ids).to match_array([d1.id])
|