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,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# encoding: utf-8
|
|
3
2
|
|
|
4
3
|
require "spec_helper"
|
|
4
|
+
require_relative '../embeds_many_models.rb'
|
|
5
5
|
|
|
6
6
|
describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
7
7
|
|
|
@@ -115,7 +115,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
115
115
|
context "when the parent is not a new record" do
|
|
116
116
|
|
|
117
117
|
let(:person) do
|
|
118
|
-
Person.create
|
|
118
|
+
Person.create!
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
let(:address) do
|
|
@@ -134,7 +134,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
134
134
|
context "when appending more than one document at once" do
|
|
135
135
|
|
|
136
136
|
let(:person) do
|
|
137
|
-
Person.create
|
|
137
|
+
Person.create!
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
let(:address_one) do
|
|
@@ -210,7 +210,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
210
210
|
context "when the parent is not a new record" do
|
|
211
211
|
|
|
212
212
|
let(:parent_role) do
|
|
213
|
-
Role.create(name: "CEO")
|
|
213
|
+
Role.create!(name: "CEO")
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
let(:child_role) do
|
|
@@ -229,7 +229,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
229
229
|
|
|
230
230
|
context "when the child has one sided many to many relation" do
|
|
231
231
|
let(:person) do
|
|
232
|
-
Person.create
|
|
232
|
+
Person.create!
|
|
233
233
|
end
|
|
234
234
|
|
|
235
235
|
let(:message) do
|
|
@@ -312,7 +312,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
312
312
|
context "when the parent is not a new record" do
|
|
313
313
|
|
|
314
314
|
let(:person) do
|
|
315
|
-
Person.create
|
|
315
|
+
Person.create!
|
|
316
316
|
end
|
|
317
317
|
|
|
318
318
|
let(:address) do
|
|
@@ -333,11 +333,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
333
333
|
context "when setting via an overridden method from the parent" do
|
|
334
334
|
|
|
335
335
|
let!(:person) do
|
|
336
|
-
Person.create
|
|
336
|
+
Person.create!
|
|
337
337
|
end
|
|
338
338
|
|
|
339
339
|
let!(:address) do
|
|
340
|
-
person.addresses.create(street: "Alt Treptow")
|
|
340
|
+
person.addresses.create!(street: "Alt Treptow")
|
|
341
341
|
end
|
|
342
342
|
|
|
343
343
|
let!(:new_address) do
|
|
@@ -345,7 +345,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
345
345
|
end
|
|
346
346
|
|
|
347
347
|
before do
|
|
348
|
-
person.update_attributes(set_addresses: [ new_address ])
|
|
348
|
+
person.update_attributes!(set_addresses: [ new_address ])
|
|
349
349
|
end
|
|
350
350
|
|
|
351
351
|
it "overwrites the existing addresses" do
|
|
@@ -375,7 +375,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
375
375
|
|
|
376
376
|
before do
|
|
377
377
|
person.addresses = [ address_two ]
|
|
378
|
-
person.save
|
|
378
|
+
person.save!
|
|
379
379
|
end
|
|
380
380
|
|
|
381
381
|
it "sets the new documents" do
|
|
@@ -409,7 +409,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
409
409
|
|
|
410
410
|
before do
|
|
411
411
|
doctor.addresses = [ address_one ]
|
|
412
|
-
doctor.save
|
|
412
|
+
doctor.save!
|
|
413
413
|
end
|
|
414
414
|
|
|
415
415
|
it "sets the documents" do
|
|
@@ -428,7 +428,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
428
428
|
|
|
429
429
|
before do
|
|
430
430
|
doctor.addresses = [ address_two ]
|
|
431
|
-
doctor.save
|
|
431
|
+
doctor.save!
|
|
432
432
|
end
|
|
433
433
|
|
|
434
434
|
it "sets the new documents" do
|
|
@@ -446,7 +446,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
446
446
|
context "when replacing an existing relation" do
|
|
447
447
|
|
|
448
448
|
let(:person) do
|
|
449
|
-
Person.create(addresses: addresses)
|
|
449
|
+
Person.create!(addresses: addresses)
|
|
450
450
|
end
|
|
451
451
|
|
|
452
452
|
let(:addresses) do
|
|
@@ -507,7 +507,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
507
507
|
end
|
|
508
508
|
|
|
509
509
|
let(:tracking_id) do
|
|
510
|
-
MyCompany::Model::TrackingId.create
|
|
510
|
+
MyCompany::Model::TrackingId.create!
|
|
511
511
|
end
|
|
512
512
|
|
|
513
513
|
let(:history) do
|
|
@@ -542,7 +542,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
542
542
|
inflect.singular("address_numbers", "address_number")
|
|
543
543
|
end
|
|
544
544
|
slave.address_numbers << AddressNumber.new(country_code: 1)
|
|
545
|
-
slave.save
|
|
545
|
+
slave.save!
|
|
546
546
|
end
|
|
547
547
|
|
|
548
548
|
it "requires an inflection to determine the class" do
|
|
@@ -553,15 +553,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
553
553
|
context "when setting the entire tree via a hash" do
|
|
554
554
|
|
|
555
555
|
let(:person) do
|
|
556
|
-
Person.create
|
|
556
|
+
Person.create!
|
|
557
557
|
end
|
|
558
558
|
|
|
559
559
|
let!(:address_one) do
|
|
560
|
-
person.addresses.create(street: "Tauentzienstr")
|
|
560
|
+
person.addresses.create!(street: "Tauentzienstr")
|
|
561
561
|
end
|
|
562
562
|
|
|
563
563
|
let!(:address_two) do
|
|
564
|
-
person.addresses.create(street: "Kudamm")
|
|
564
|
+
person.addresses.create!(street: "Kudamm")
|
|
565
565
|
end
|
|
566
566
|
|
|
567
567
|
let(:attributes) do
|
|
@@ -572,7 +572,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
572
572
|
|
|
573
573
|
before do
|
|
574
574
|
attributes["addresses"][0]["city"] = "Berlin"
|
|
575
|
-
person.update_attributes(attributes)
|
|
575
|
+
person.update_attributes!(attributes)
|
|
576
576
|
end
|
|
577
577
|
|
|
578
578
|
it "sets the new attributes" do
|
|
@@ -588,15 +588,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
588
588
|
context "when setting an embedded sub-document tree via a hash" do
|
|
589
589
|
|
|
590
590
|
let(:person) do
|
|
591
|
-
Person.create
|
|
591
|
+
Person.create!
|
|
592
592
|
end
|
|
593
593
|
|
|
594
594
|
let!(:address_one) do
|
|
595
|
-
person.addresses.create(street: "Tauentzienstr")
|
|
595
|
+
person.addresses.create!(street: "Tauentzienstr")
|
|
596
596
|
end
|
|
597
597
|
|
|
598
598
|
let!(:location_one) do
|
|
599
|
-
person.addresses.first.locations.create(name: "Work")
|
|
599
|
+
person.addresses.first.locations.create!(name: "Work")
|
|
600
600
|
end
|
|
601
601
|
|
|
602
602
|
let(:attributes) do
|
|
@@ -608,7 +608,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
608
608
|
before do
|
|
609
609
|
attributes["city"] = "Berlin"
|
|
610
610
|
attributes["locations"][0]["name"] = "Home"
|
|
611
|
-
person.addresses.first.update_attributes(attributes)
|
|
611
|
+
person.addresses.first.update_attributes!(attributes)
|
|
612
612
|
end
|
|
613
613
|
|
|
614
614
|
it "sets the new attributes on the address" do
|
|
@@ -681,7 +681,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
681
681
|
context "when the parent is not a new record" do
|
|
682
682
|
|
|
683
683
|
let(:parent_role) do
|
|
684
|
-
Role.create(name: "CTO")
|
|
684
|
+
Role.create!(name: "CTO")
|
|
685
685
|
end
|
|
686
686
|
|
|
687
687
|
let(:child_role) do
|
|
@@ -749,7 +749,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
749
749
|
context "when the parent is persisted" do
|
|
750
750
|
|
|
751
751
|
let(:person) do
|
|
752
|
-
Person.create
|
|
752
|
+
Person.create!
|
|
753
753
|
end
|
|
754
754
|
|
|
755
755
|
let(:address) do
|
|
@@ -798,7 +798,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
798
798
|
context "when saving the parent" do
|
|
799
799
|
|
|
800
800
|
before do
|
|
801
|
-
person.save
|
|
801
|
+
person.save!
|
|
802
802
|
person.reload
|
|
803
803
|
end
|
|
804
804
|
|
|
@@ -812,7 +812,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
812
812
|
context "when setting on a reload" do
|
|
813
813
|
|
|
814
814
|
let(:person) do
|
|
815
|
-
Person.create
|
|
815
|
+
Person.create!
|
|
816
816
|
end
|
|
817
817
|
|
|
818
818
|
let(:address) do
|
|
@@ -882,7 +882,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
882
882
|
context "when the documents are not new records" do
|
|
883
883
|
|
|
884
884
|
let(:parent_role) do
|
|
885
|
-
Role.create
|
|
885
|
+
Role.create!
|
|
886
886
|
end
|
|
887
887
|
|
|
888
888
|
let(:child_role) do
|
|
@@ -912,13 +912,13 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
912
912
|
describe "#as_document" do
|
|
913
913
|
|
|
914
914
|
let!(:person) do
|
|
915
|
-
Person.create
|
|
915
|
+
Person.create!
|
|
916
916
|
end
|
|
917
917
|
|
|
918
918
|
context 'when a string is used to access an attribute' do
|
|
919
919
|
|
|
920
920
|
let!(:address) do
|
|
921
|
-
person.addresses.create(street: "one")
|
|
921
|
+
person.addresses.create!(street: "one")
|
|
922
922
|
end
|
|
923
923
|
|
|
924
924
|
let(:document) do
|
|
@@ -933,7 +933,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
933
933
|
context 'when a symbol is used to access an attribute' do
|
|
934
934
|
|
|
935
935
|
let!(:address) do
|
|
936
|
-
person.addresses.create(street: "one")
|
|
936
|
+
person.addresses.create!(street: "one")
|
|
937
937
|
end
|
|
938
938
|
|
|
939
939
|
let(:document) do
|
|
@@ -948,7 +948,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
948
948
|
context "when the relation has no default scope" do
|
|
949
949
|
|
|
950
950
|
let!(:address) do
|
|
951
|
-
person.addresses.create(street: "one")
|
|
951
|
+
person.addresses.create!(street: "one")
|
|
952
952
|
end
|
|
953
953
|
|
|
954
954
|
let(:document) do
|
|
@@ -1105,7 +1105,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1105
1105
|
context "when providing nested attributes" do
|
|
1106
1106
|
|
|
1107
1107
|
let(:person) do
|
|
1108
|
-
Person.create
|
|
1108
|
+
Person.create!
|
|
1109
1109
|
end
|
|
1110
1110
|
|
|
1111
1111
|
let(:address) do
|
|
@@ -1119,7 +1119,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1119
1119
|
context "when followed by a save" do
|
|
1120
1120
|
|
|
1121
1121
|
before do
|
|
1122
|
-
address.save
|
|
1122
|
+
address.save!
|
|
1123
1123
|
end
|
|
1124
1124
|
|
|
1125
1125
|
let(:location) do
|
|
@@ -1139,13 +1139,13 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1139
1139
|
context "when the parent has been persisted" do
|
|
1140
1140
|
|
|
1141
1141
|
let(:person) do
|
|
1142
|
-
Person.create
|
|
1142
|
+
Person.create!
|
|
1143
1143
|
end
|
|
1144
1144
|
|
|
1145
1145
|
context "when the children are persisted" do
|
|
1146
1146
|
|
|
1147
1147
|
let!(:address) do
|
|
1148
|
-
person.addresses.create(street: "High St")
|
|
1148
|
+
person.addresses.create!(street: "High St")
|
|
1149
1149
|
end
|
|
1150
1150
|
|
|
1151
1151
|
let!(:relation) do
|
|
@@ -1261,7 +1261,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1261
1261
|
context "when the parent is not a new record" do
|
|
1262
1262
|
|
|
1263
1263
|
let(:person) do
|
|
1264
|
-
Person.create
|
|
1264
|
+
Person.create!
|
|
1265
1265
|
end
|
|
1266
1266
|
|
|
1267
1267
|
let(:address) do
|
|
@@ -1280,7 +1280,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1280
1280
|
context "when concatenating an empty array" do
|
|
1281
1281
|
|
|
1282
1282
|
let(:person) do
|
|
1283
|
-
Person.create
|
|
1283
|
+
Person.create!
|
|
1284
1284
|
end
|
|
1285
1285
|
|
|
1286
1286
|
before do
|
|
@@ -1296,7 +1296,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1296
1296
|
context "when appending more than one document at once" do
|
|
1297
1297
|
|
|
1298
1298
|
let(:person) do
|
|
1299
|
-
Person.create
|
|
1299
|
+
Person.create!
|
|
1300
1300
|
end
|
|
1301
1301
|
|
|
1302
1302
|
let(:address_one) do
|
|
@@ -1368,7 +1368,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1368
1368
|
context "when the parent is not a new record" do
|
|
1369
1369
|
|
|
1370
1370
|
let(:parent_role) do
|
|
1371
|
-
Role.create(name: "CEO")
|
|
1371
|
+
Role.create!(name: "CEO")
|
|
1372
1372
|
end
|
|
1373
1373
|
|
|
1374
1374
|
let(:child_role) do
|
|
@@ -1389,49 +1389,261 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1389
1389
|
describe "#count" do
|
|
1390
1390
|
|
|
1391
1391
|
let(:person) do
|
|
1392
|
-
Person.create
|
|
1392
|
+
Person.create!
|
|
1393
1393
|
end
|
|
1394
1394
|
|
|
1395
1395
|
before do
|
|
1396
|
-
person.addresses.create(street: "Upper")
|
|
1396
|
+
person.addresses.create!(street: "Upper")
|
|
1397
1397
|
person.addresses.build(street: "Bond")
|
|
1398
|
+
person.addresses.build(street: "Lower")
|
|
1398
1399
|
end
|
|
1399
1400
|
|
|
1400
1401
|
it "returns the number of persisted documents" do
|
|
1401
1402
|
expect(person.addresses.count).to eq(1)
|
|
1402
1403
|
end
|
|
1404
|
+
|
|
1405
|
+
context 'block form' do
|
|
1406
|
+
it "iterates across all documents" do
|
|
1407
|
+
expect(person.addresses.count {|a| a.persisted? }).to eq(1)
|
|
1408
|
+
expect(person.addresses.count {|a| !a.persisted? }).to eq(2)
|
|
1409
|
+
expect(person.addresses.count {|a| a.street.include?('on') }).to eq(1)
|
|
1410
|
+
expect(person.addresses.count {|a| a.street.ends_with?('er') }).to eq(2)
|
|
1411
|
+
end
|
|
1412
|
+
end
|
|
1413
|
+
|
|
1414
|
+
context 'argument form' do
|
|
1415
|
+
it "behaves correctly when given a model instance" do
|
|
1416
|
+
expect(person.addresses.count(person.addresses.first)).to eq(1)
|
|
1417
|
+
end
|
|
1418
|
+
|
|
1419
|
+
it "behaves correctly when given a non-model instance" do
|
|
1420
|
+
expect(person.addresses.count(1)).to eq(0)
|
|
1421
|
+
end
|
|
1422
|
+
end
|
|
1403
1423
|
end
|
|
1404
1424
|
|
|
1405
1425
|
describe "#any?" do
|
|
1406
1426
|
|
|
1407
1427
|
let(:person) do
|
|
1408
|
-
Person.create
|
|
1428
|
+
Person.create!
|
|
1409
1429
|
end
|
|
1410
1430
|
|
|
1411
1431
|
context "when documents are persisted" do
|
|
1412
1432
|
before do
|
|
1413
|
-
person.addresses.create(street: "Upper")
|
|
1433
|
+
person.addresses.create!(street: "Upper")
|
|
1414
1434
|
end
|
|
1415
1435
|
|
|
1416
1436
|
it "returns true" do
|
|
1417
1437
|
expect(person.addresses.any?).to be true
|
|
1418
1438
|
end
|
|
1439
|
+
|
|
1440
|
+
it "block form iterates across all documents" do
|
|
1441
|
+
expect(person.addresses.any? {|a| a.street == "Upper" }).to be true
|
|
1442
|
+
expect(person.addresses.any? {|a| a.street == "Bond" }).to be false
|
|
1443
|
+
end
|
|
1444
|
+
|
|
1445
|
+
context 'argument form' do
|
|
1446
|
+
it "behaves correctly when given a model instance" do
|
|
1447
|
+
expect(person.addresses.any?(person.addresses.first)).to be true
|
|
1448
|
+
end
|
|
1449
|
+
|
|
1450
|
+
it "behaves correctly when given a non-model instance" do
|
|
1451
|
+
expect(person.addresses.any?(1)).to be false
|
|
1452
|
+
end
|
|
1453
|
+
end
|
|
1419
1454
|
end
|
|
1420
|
-
|
|
1455
|
+
|
|
1421
1456
|
context "when documents are not persisted" do
|
|
1422
1457
|
before do
|
|
1423
1458
|
person.addresses.build(street: "Bond")
|
|
1424
1459
|
end
|
|
1425
|
-
|
|
1460
|
+
|
|
1426
1461
|
it "returns true" do
|
|
1427
1462
|
expect(person.addresses.any?).to be true
|
|
1428
1463
|
end
|
|
1464
|
+
|
|
1465
|
+
it "block form iterates across all documents" do
|
|
1466
|
+
expect(person.addresses.any? {|a| a.street == "Upper" }).to be false
|
|
1467
|
+
expect(person.addresses.any? {|a| a.street == "Bond" }).to be true
|
|
1468
|
+
end
|
|
1469
|
+
|
|
1470
|
+
context 'argument form' do
|
|
1471
|
+
it "behaves correctly when given a model instance" do
|
|
1472
|
+
expect(person.addresses.any?(person.addresses.first)).to be true
|
|
1473
|
+
end
|
|
1474
|
+
|
|
1475
|
+
it "behaves correctly when given a non-model instance" do
|
|
1476
|
+
expect(person.addresses.any?(1)).to be false
|
|
1477
|
+
end
|
|
1478
|
+
end
|
|
1429
1479
|
end
|
|
1430
1480
|
|
|
1431
|
-
context "when documents are not
|
|
1481
|
+
context "when documents are not present" do
|
|
1432
1482
|
it "returns false" do
|
|
1433
1483
|
expect(person.addresses.any?).to be false
|
|
1434
1484
|
end
|
|
1485
|
+
|
|
1486
|
+
it "block form iterates across all documents" do
|
|
1487
|
+
expect(person.addresses.any?(&:a)).to be false
|
|
1488
|
+
end
|
|
1489
|
+
|
|
1490
|
+
it "argument form is supported" do
|
|
1491
|
+
expect(person.addresses.any?(1)).to be false
|
|
1492
|
+
end
|
|
1493
|
+
end
|
|
1494
|
+
end
|
|
1495
|
+
|
|
1496
|
+
describe "#all?" do
|
|
1497
|
+
|
|
1498
|
+
let(:person) do
|
|
1499
|
+
Person.create!
|
|
1500
|
+
end
|
|
1501
|
+
|
|
1502
|
+
context "when documents are persisted" do
|
|
1503
|
+
before do
|
|
1504
|
+
person.addresses.create!(street: "Upper")
|
|
1505
|
+
end
|
|
1506
|
+
|
|
1507
|
+
it "returns true" do
|
|
1508
|
+
expect(person.addresses.all?).to be true
|
|
1509
|
+
end
|
|
1510
|
+
|
|
1511
|
+
it "block form iterates across all documents" do
|
|
1512
|
+
expect(person.addresses.all? {|a| a.street == "Upper" }).to be true
|
|
1513
|
+
expect(person.addresses.all? {|a| a.street == "Bond" }).to be false
|
|
1514
|
+
end
|
|
1515
|
+
|
|
1516
|
+
context 'argument form' do
|
|
1517
|
+
it "behaves correctly when given a model instance" do
|
|
1518
|
+
expect(person.addresses.all?(person.addresses.first)).to be true
|
|
1519
|
+
end
|
|
1520
|
+
|
|
1521
|
+
it "behaves correctly when given a non-model instance" do
|
|
1522
|
+
expect(person.addresses.all?(1)).to be false
|
|
1523
|
+
end
|
|
1524
|
+
end
|
|
1525
|
+
end
|
|
1526
|
+
|
|
1527
|
+
context "when documents are not persisted" do
|
|
1528
|
+
before do
|
|
1529
|
+
person.addresses.build(street: "Bond")
|
|
1530
|
+
end
|
|
1531
|
+
|
|
1532
|
+
it "returns true" do
|
|
1533
|
+
expect(person.addresses.all?).to be true
|
|
1534
|
+
end
|
|
1535
|
+
|
|
1536
|
+
it "block form iterates across all documents" do
|
|
1537
|
+
expect(person.addresses.all? {|a| a.street == "Upper" }).to be false
|
|
1538
|
+
expect(person.addresses.all? {|a| a.street == "Bond" }).to be true
|
|
1539
|
+
end
|
|
1540
|
+
|
|
1541
|
+
context 'argument form' do
|
|
1542
|
+
it "behaves correctly when given a model instance" do
|
|
1543
|
+
expect(person.addresses.all?(person.addresses.first)).to be true
|
|
1544
|
+
end
|
|
1545
|
+
|
|
1546
|
+
it "behaves correctly when given a non-model instance" do
|
|
1547
|
+
expect(person.addresses.all?(1)).to be false
|
|
1548
|
+
end
|
|
1549
|
+
end
|
|
1550
|
+
end
|
|
1551
|
+
|
|
1552
|
+
context "when documents are not present" do
|
|
1553
|
+
it "returns false" do
|
|
1554
|
+
expect(person.addresses.all?).to be true
|
|
1555
|
+
end
|
|
1556
|
+
|
|
1557
|
+
it "block form iterates across all documents" do
|
|
1558
|
+
expect(person.addresses.all?(&:foo)).to be true
|
|
1559
|
+
end
|
|
1560
|
+
|
|
1561
|
+
context 'argument form' do
|
|
1562
|
+
it "behaves correctly when given nil" do
|
|
1563
|
+
expect(person.addresses.all?(nil)).to be true
|
|
1564
|
+
end
|
|
1565
|
+
|
|
1566
|
+
it "behaves correctly when given a non-model instance" do
|
|
1567
|
+
expect(person.addresses.all?(1)).to be true
|
|
1568
|
+
end
|
|
1569
|
+
end
|
|
1570
|
+
end
|
|
1571
|
+
end
|
|
1572
|
+
|
|
1573
|
+
describe "#none?" do
|
|
1574
|
+
|
|
1575
|
+
let(:person) do
|
|
1576
|
+
Person.create!
|
|
1577
|
+
end
|
|
1578
|
+
|
|
1579
|
+
context "when documents are persisted" do
|
|
1580
|
+
before do
|
|
1581
|
+
person.addresses.create!(street: "Upper")
|
|
1582
|
+
end
|
|
1583
|
+
|
|
1584
|
+
it "returns true" do
|
|
1585
|
+
expect(person.addresses.none?).to be false
|
|
1586
|
+
end
|
|
1587
|
+
|
|
1588
|
+
it "block form iterates across all documents" do
|
|
1589
|
+
expect(person.addresses.none? {|a| a.street == "Upper" }).to be false
|
|
1590
|
+
expect(person.addresses.none? {|a| a.street == "Bond" }).to be true
|
|
1591
|
+
end
|
|
1592
|
+
|
|
1593
|
+
context 'argument form' do
|
|
1594
|
+
it "behaves correctly when given a model instance" do
|
|
1595
|
+
expect(person.addresses.none?(person.addresses.first)).to be false
|
|
1596
|
+
end
|
|
1597
|
+
|
|
1598
|
+
it "behaves correctly when given a non-model instance" do
|
|
1599
|
+
expect(person.addresses.none?(1)).to be true
|
|
1600
|
+
end
|
|
1601
|
+
end
|
|
1602
|
+
end
|
|
1603
|
+
|
|
1604
|
+
context "when documents are not persisted" do
|
|
1605
|
+
before do
|
|
1606
|
+
person.addresses.build(street: "Bond")
|
|
1607
|
+
end
|
|
1608
|
+
|
|
1609
|
+
it "returns true" do
|
|
1610
|
+
expect(person.addresses.none?).to be false
|
|
1611
|
+
end
|
|
1612
|
+
|
|
1613
|
+
it "block form iterates across all documents" do
|
|
1614
|
+
expect(person.addresses.none? {|a| a.street == "Upper" }).to be true
|
|
1615
|
+
expect(person.addresses.none? {|a| a.street == "Bond" }).to be false
|
|
1616
|
+
end
|
|
1617
|
+
|
|
1618
|
+
context 'argument form' do
|
|
1619
|
+
it "behaves correctly when given a model instance" do
|
|
1620
|
+
expect(person.addresses.none?(person.addresses.first)).to be false
|
|
1621
|
+
end
|
|
1622
|
+
|
|
1623
|
+
it "behaves correctly when given a non-model instance" do
|
|
1624
|
+
expect(person.addresses.none?(1)).to be true
|
|
1625
|
+
end
|
|
1626
|
+
end
|
|
1627
|
+
end
|
|
1628
|
+
|
|
1629
|
+
context "when documents are not present" do
|
|
1630
|
+
it "returns false" do
|
|
1631
|
+
expect(person.addresses.none?).to be true
|
|
1632
|
+
end
|
|
1633
|
+
|
|
1634
|
+
it "block form iterates across all documents" do
|
|
1635
|
+
expect(person.addresses.none?(&:a)).to be true
|
|
1636
|
+
end
|
|
1637
|
+
|
|
1638
|
+
context 'argument form' do
|
|
1639
|
+
it "behaves correctly when given nil" do
|
|
1640
|
+
expect(person.addresses.none?(nil)).to be true
|
|
1641
|
+
end
|
|
1642
|
+
|
|
1643
|
+
it "behaves correctly when given a non-model instance" do
|
|
1644
|
+
expect(person.addresses.none?(1)).to be true
|
|
1645
|
+
end
|
|
1646
|
+
end
|
|
1435
1647
|
end
|
|
1436
1648
|
end
|
|
1437
1649
|
|
|
@@ -1440,11 +1652,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1440
1652
|
context "when providing multiple attributes" do
|
|
1441
1653
|
|
|
1442
1654
|
let(:person) do
|
|
1443
|
-
Person.create
|
|
1655
|
+
Person.create!
|
|
1444
1656
|
end
|
|
1445
1657
|
|
|
1446
1658
|
let!(:addresses) do
|
|
1447
|
-
person.addresses.create([{ street: "Bond" }, { street: "Upper" }])
|
|
1659
|
+
person.addresses.create!([{ street: "Bond" }, { street: "Upper" }])
|
|
1448
1660
|
end
|
|
1449
1661
|
|
|
1450
1662
|
it "creates multiple documents" do
|
|
@@ -1467,11 +1679,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1467
1679
|
context "when the relation is not cyclic" do
|
|
1468
1680
|
|
|
1469
1681
|
let(:person) do
|
|
1470
|
-
Person.create
|
|
1682
|
+
Person.create!
|
|
1471
1683
|
end
|
|
1472
1684
|
|
|
1473
1685
|
let!(:address) do
|
|
1474
|
-
person.addresses.create(street: "Bond") do |address|
|
|
1686
|
+
person.addresses.create!(street: "Bond") do |address|
|
|
1475
1687
|
address.state = "CA"
|
|
1476
1688
|
end
|
|
1477
1689
|
end
|
|
@@ -1515,7 +1727,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1515
1727
|
context "when embedding a multi word named document" do
|
|
1516
1728
|
|
|
1517
1729
|
let!(:component) do
|
|
1518
|
-
person.address_components.create(street: "Test")
|
|
1730
|
+
person.address_components.create!(street: "Test")
|
|
1519
1731
|
end
|
|
1520
1732
|
|
|
1521
1733
|
it "saves the embedded document" do
|
|
@@ -1527,11 +1739,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1527
1739
|
context "when the relation is cyclic" do
|
|
1528
1740
|
|
|
1529
1741
|
let!(:entry) do
|
|
1530
|
-
Entry.create(title: "hi")
|
|
1742
|
+
Entry.create!(title: "hi")
|
|
1531
1743
|
end
|
|
1532
1744
|
|
|
1533
1745
|
let!(:child_entry) do
|
|
1534
|
-
entry.child_entries.create(title: "hello")
|
|
1746
|
+
entry.child_entries.create!(title: "hello")
|
|
1535
1747
|
end
|
|
1536
1748
|
|
|
1537
1749
|
it "creates a new child" do
|
|
@@ -1543,7 +1755,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1543
1755
|
describe "#create!" do
|
|
1544
1756
|
|
|
1545
1757
|
let(:person) do
|
|
1546
|
-
Person.create
|
|
1758
|
+
Person.create!
|
|
1547
1759
|
end
|
|
1548
1760
|
|
|
1549
1761
|
context "when providing multiple attributes" do
|
|
@@ -1702,7 +1914,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1702
1914
|
describe "#delete_if" do
|
|
1703
1915
|
|
|
1704
1916
|
let(:person) do
|
|
1705
|
-
Person.create
|
|
1917
|
+
Person.create!
|
|
1706
1918
|
end
|
|
1707
1919
|
|
|
1708
1920
|
context "when the documents are new" do
|
|
@@ -1751,11 +1963,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1751
1963
|
context "when the documents persisted" do
|
|
1752
1964
|
|
|
1753
1965
|
let!(:address_one) do
|
|
1754
|
-
person.addresses.create(street: "Bond")
|
|
1966
|
+
person.addresses.create!(street: "Bond")
|
|
1755
1967
|
end
|
|
1756
1968
|
|
|
1757
1969
|
let!(:address_two) do
|
|
1758
|
-
person.addresses.create(street: "Upper")
|
|
1970
|
+
person.addresses.create!(street: "Upper")
|
|
1759
1971
|
end
|
|
1760
1972
|
|
|
1761
1973
|
context "when a block is provided" do
|
|
@@ -1810,7 +2022,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1810
2022
|
describe "##{method}" do
|
|
1811
2023
|
|
|
1812
2024
|
let(:person) do
|
|
1813
|
-
Person.create
|
|
2025
|
+
Person.create!
|
|
1814
2026
|
end
|
|
1815
2027
|
|
|
1816
2028
|
context "when the documents are new" do
|
|
@@ -1864,11 +2076,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1864
2076
|
context "when the documents persisted" do
|
|
1865
2077
|
|
|
1866
2078
|
let!(:address_one) do
|
|
1867
|
-
person.addresses.create(street: "Bond")
|
|
2079
|
+
person.addresses.create!(street: "Bond")
|
|
1868
2080
|
end
|
|
1869
2081
|
|
|
1870
2082
|
let!(:address_two) do
|
|
1871
|
-
person.addresses.create(street: "Upper")
|
|
2083
|
+
person.addresses.create!(street: "Upper")
|
|
1872
2084
|
end
|
|
1873
2085
|
|
|
1874
2086
|
context "when conditions are provided" do
|
|
@@ -1915,7 +2127,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
1915
2127
|
context "when removing and resaving" do
|
|
1916
2128
|
|
|
1917
2129
|
let(:owner) do
|
|
1918
|
-
PetOwner.create(title: "AKC")
|
|
2130
|
+
PetOwner.create!(title: "AKC")
|
|
1919
2131
|
end
|
|
1920
2132
|
|
|
1921
2133
|
before do
|
|
@@ -2011,13 +2223,13 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2011
2223
|
describe "#exists?" do
|
|
2012
2224
|
|
|
2013
2225
|
let!(:person) do
|
|
2014
|
-
Person.create
|
|
2226
|
+
Person.create!
|
|
2015
2227
|
end
|
|
2016
2228
|
|
|
2017
2229
|
context "when documents exist in the database" do
|
|
2018
2230
|
|
|
2019
2231
|
before do
|
|
2020
|
-
person.addresses.create(street: "Bond St")
|
|
2232
|
+
person.addresses.create!(street: "Bond St")
|
|
2021
2233
|
end
|
|
2022
2234
|
|
|
2023
2235
|
it "returns true" do
|
|
@@ -2148,12 +2360,50 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2148
2360
|
end
|
|
2149
2361
|
end
|
|
2150
2362
|
end
|
|
2363
|
+
|
|
2364
|
+
context "with block" do
|
|
2365
|
+
let!(:author) do
|
|
2366
|
+
Person.create!(title: 'Person')
|
|
2367
|
+
end
|
|
2368
|
+
|
|
2369
|
+
let!(:video_one) do
|
|
2370
|
+
author.videos.create!(title: 'video one')
|
|
2371
|
+
end
|
|
2372
|
+
|
|
2373
|
+
let!(:video_two) do
|
|
2374
|
+
author.videos.create!(title: 'video two')
|
|
2375
|
+
end
|
|
2376
|
+
|
|
2377
|
+
it "finds one" do
|
|
2378
|
+
expect(
|
|
2379
|
+
author.videos.find do |video|
|
|
2380
|
+
video.title == 'video one'
|
|
2381
|
+
end
|
|
2382
|
+
).to eq(video_one)
|
|
2383
|
+
end
|
|
2384
|
+
|
|
2385
|
+
it "returns first match of multiple" do
|
|
2386
|
+
expect(
|
|
2387
|
+
author.videos.find do |video|
|
|
2388
|
+
['video one', 'video two'].include?(video.title)
|
|
2389
|
+
end
|
|
2390
|
+
).to be_a(Video)
|
|
2391
|
+
end
|
|
2392
|
+
|
|
2393
|
+
it "returns nil when not found" do
|
|
2394
|
+
expect(
|
|
2395
|
+
author.videos.find do |video|
|
|
2396
|
+
video.title == 'non exiting one'
|
|
2397
|
+
end
|
|
2398
|
+
).to be_nil
|
|
2399
|
+
end
|
|
2400
|
+
end
|
|
2151
2401
|
end
|
|
2152
2402
|
|
|
2153
2403
|
describe "#find_or_create_by" do
|
|
2154
2404
|
|
|
2155
2405
|
let(:person) do
|
|
2156
|
-
Person.create
|
|
2406
|
+
Person.create!
|
|
2157
2407
|
end
|
|
2158
2408
|
|
|
2159
2409
|
let!(:address) do
|
|
@@ -2196,11 +2446,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2196
2446
|
# context "when the child belongs to another document" do
|
|
2197
2447
|
#
|
|
2198
2448
|
# let(:product) do
|
|
2199
|
-
# Product.create
|
|
2449
|
+
# Product.create!
|
|
2200
2450
|
# end
|
|
2201
2451
|
#
|
|
2202
2452
|
# let(:purchase) do
|
|
2203
|
-
# Purchase.create
|
|
2453
|
+
# Purchase.create!
|
|
2204
2454
|
# end
|
|
2205
2455
|
#
|
|
2206
2456
|
# let(:line_item) do
|
|
@@ -2219,7 +2469,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2219
2469
|
describe "#find_or_create_by!" do
|
|
2220
2470
|
|
|
2221
2471
|
let(:person) do
|
|
2222
|
-
Person.create
|
|
2472
|
+
Person.create!
|
|
2223
2473
|
end
|
|
2224
2474
|
|
|
2225
2475
|
let!(:address) do
|
|
@@ -2271,11 +2521,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2271
2521
|
# context "when the child belongs to another document" do
|
|
2272
2522
|
#
|
|
2273
2523
|
# let(:product) do
|
|
2274
|
-
# Product.create
|
|
2524
|
+
# Product.create!
|
|
2275
2525
|
# end
|
|
2276
2526
|
#
|
|
2277
2527
|
# let(:purchase) do
|
|
2278
|
-
# Purchase.create
|
|
2528
|
+
# Purchase.create!
|
|
2279
2529
|
# end
|
|
2280
2530
|
#
|
|
2281
2531
|
# let(:line_item) do
|
|
@@ -2393,11 +2643,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2393
2643
|
describe "#method_missing" do
|
|
2394
2644
|
|
|
2395
2645
|
let!(:person) do
|
|
2396
|
-
Person.create
|
|
2646
|
+
Person.create!
|
|
2397
2647
|
end
|
|
2398
2648
|
|
|
2399
2649
|
let!(:address_one) do
|
|
2400
|
-
person.addresses.create(
|
|
2650
|
+
person.addresses.create!(
|
|
2401
2651
|
street: "Market",
|
|
2402
2652
|
state: "CA",
|
|
2403
2653
|
services: [ "1", "2" ]
|
|
@@ -2405,7 +2655,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2405
2655
|
end
|
|
2406
2656
|
|
|
2407
2657
|
let!(:address_two) do
|
|
2408
|
-
person.addresses.create(
|
|
2658
|
+
person.addresses.create!(
|
|
2409
2659
|
street: "Madison",
|
|
2410
2660
|
state: "NY",
|
|
2411
2661
|
services: [ "1", "2" ]
|
|
@@ -2553,17 +2803,17 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2553
2803
|
describe "#pop" do
|
|
2554
2804
|
|
|
2555
2805
|
let(:person) do
|
|
2556
|
-
Person.create
|
|
2806
|
+
Person.create!
|
|
2557
2807
|
end
|
|
2558
2808
|
|
|
2559
2809
|
context "when no argument is provided" do
|
|
2560
2810
|
|
|
2561
2811
|
let!(:address_one) do
|
|
2562
|
-
person.addresses.create(street: "sonnenallee")
|
|
2812
|
+
person.addresses.create!(street: "sonnenallee")
|
|
2563
2813
|
end
|
|
2564
2814
|
|
|
2565
2815
|
let!(:address_two) do
|
|
2566
|
-
person.addresses.create(street: "hermannstr")
|
|
2816
|
+
person.addresses.create!(street: "hermannstr")
|
|
2567
2817
|
end
|
|
2568
2818
|
|
|
2569
2819
|
let!(:popped) do
|
|
@@ -2586,11 +2836,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2586
2836
|
context "when an integer is provided" do
|
|
2587
2837
|
|
|
2588
2838
|
let!(:address_one) do
|
|
2589
|
-
person.addresses.create(street: "sonnenallee")
|
|
2839
|
+
person.addresses.create!(street: "sonnenallee")
|
|
2590
2840
|
end
|
|
2591
2841
|
|
|
2592
2842
|
let!(:address_two) do
|
|
2593
|
-
person.addresses.create(street: "hermannstr")
|
|
2843
|
+
person.addresses.create!(street: "hermannstr")
|
|
2594
2844
|
end
|
|
2595
2845
|
|
|
2596
2846
|
context "when the number is zero" do
|
|
@@ -2672,17 +2922,17 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2672
2922
|
describe "#shift" do
|
|
2673
2923
|
|
|
2674
2924
|
let(:person) do
|
|
2675
|
-
Person.create
|
|
2925
|
+
Person.create!
|
|
2676
2926
|
end
|
|
2677
2927
|
|
|
2678
2928
|
context "when no argument is provided" do
|
|
2679
2929
|
|
|
2680
2930
|
let!(:address_one) do
|
|
2681
|
-
person.addresses.create(street: "sonnenallee")
|
|
2931
|
+
person.addresses.create!(street: "sonnenallee")
|
|
2682
2932
|
end
|
|
2683
2933
|
|
|
2684
2934
|
let!(:address_two) do
|
|
2685
|
-
person.addresses.create(street: "hermannstr")
|
|
2935
|
+
person.addresses.create!(street: "hermannstr")
|
|
2686
2936
|
end
|
|
2687
2937
|
|
|
2688
2938
|
let!(:shifted) do
|
|
@@ -2705,11 +2955,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2705
2955
|
context "when an integer is provided" do
|
|
2706
2956
|
|
|
2707
2957
|
let!(:address_one) do
|
|
2708
|
-
person.addresses.create(street: "sonnenallee")
|
|
2958
|
+
person.addresses.create!(street: "sonnenallee")
|
|
2709
2959
|
end
|
|
2710
2960
|
|
|
2711
2961
|
let!(:address_two) do
|
|
2712
|
-
person.addresses.create(street: "hermannstr")
|
|
2962
|
+
person.addresses.create!(street: "hermannstr")
|
|
2713
2963
|
end
|
|
2714
2964
|
|
|
2715
2965
|
context "when the number is zero" do
|
|
@@ -2857,11 +3107,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2857
3107
|
describe "##{method}" do
|
|
2858
3108
|
|
|
2859
3109
|
let(:person) do
|
|
2860
|
-
Person.create
|
|
3110
|
+
Person.create!
|
|
2861
3111
|
end
|
|
2862
3112
|
|
|
2863
3113
|
before do
|
|
2864
|
-
person.addresses.create(street: "Upper")
|
|
3114
|
+
person.addresses.create!(street: "Upper")
|
|
2865
3115
|
person.addresses.build(street: "Bond")
|
|
2866
3116
|
end
|
|
2867
3117
|
|
|
@@ -2899,7 +3149,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2899
3149
|
context "when there are no documents present" do
|
|
2900
3150
|
|
|
2901
3151
|
let(:person) do
|
|
2902
|
-
Person.create
|
|
3152
|
+
Person.create!
|
|
2903
3153
|
end
|
|
2904
3154
|
|
|
2905
3155
|
it "updates nothing" do
|
|
@@ -2910,11 +3160,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2910
3160
|
context "when documents are present" do
|
|
2911
3161
|
|
|
2912
3162
|
let(:person) do
|
|
2913
|
-
Person.create
|
|
3163
|
+
Person.create!
|
|
2914
3164
|
end
|
|
2915
3165
|
|
|
2916
3166
|
let!(:address) do
|
|
2917
|
-
person.addresses.create(street: "Hobrecht", number: 27)
|
|
3167
|
+
person.addresses.create!(street: "Hobrecht", number: 27)
|
|
2918
3168
|
end
|
|
2919
3169
|
|
|
2920
3170
|
context "when updating with a where clause" do
|
|
@@ -2949,16 +3199,16 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2949
3199
|
context "when updating the bottom level" do
|
|
2950
3200
|
|
|
2951
3201
|
let!(:person) do
|
|
2952
|
-
Person.create
|
|
3202
|
+
Person.create!
|
|
2953
3203
|
end
|
|
2954
3204
|
|
|
2955
3205
|
let!(:address) do
|
|
2956
|
-
person.addresses.create(street: "Joachimstr")
|
|
3206
|
+
person.addresses.create!(street: "Joachimstr")
|
|
2957
3207
|
end
|
|
2958
3208
|
|
|
2959
3209
|
let!(:location) do
|
|
2960
|
-
address.locations.create(name: "vacation", number: 0)
|
|
2961
|
-
address.locations.create(name: "work", number: 3)
|
|
3210
|
+
address.locations.create!(name: "vacation", number: 0)
|
|
3211
|
+
address.locations.create!(name: "work", number: 3)
|
|
2962
3212
|
end
|
|
2963
3213
|
|
|
2964
3214
|
context "when updating with replacement of embedded array" do
|
|
@@ -2966,7 +3216,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2966
3216
|
context "when updating with a hash" do
|
|
2967
3217
|
|
|
2968
3218
|
before do
|
|
2969
|
-
address.update_attributes(locations: [{ name: "home" }])
|
|
3219
|
+
address.update_attributes!(locations: [{ name: "home" }])
|
|
2970
3220
|
end
|
|
2971
3221
|
|
|
2972
3222
|
it "updates the attributes" do
|
|
@@ -2987,7 +3237,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
2987
3237
|
|
|
2988
3238
|
before do
|
|
2989
3239
|
location.number = 7
|
|
2990
|
-
location.save
|
|
3240
|
+
location.save!
|
|
2991
3241
|
end
|
|
2992
3242
|
|
|
2993
3243
|
let(:updated_location_number) do
|
|
@@ -3120,7 +3370,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3120
3370
|
context "when creating a persisted tree" do
|
|
3121
3371
|
|
|
3122
3372
|
let(:quiz) do
|
|
3123
|
-
Quiz.create
|
|
3373
|
+
Quiz.create!
|
|
3124
3374
|
end
|
|
3125
3375
|
|
|
3126
3376
|
let(:page) do
|
|
@@ -3185,7 +3435,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3185
3435
|
context "when saving the root" do
|
|
3186
3436
|
|
|
3187
3437
|
before do
|
|
3188
|
-
person.save
|
|
3438
|
+
person.save!
|
|
3189
3439
|
end
|
|
3190
3440
|
|
|
3191
3441
|
it "persists the first level document" do
|
|
@@ -3339,11 +3589,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3339
3589
|
context "when accessing the parent in a destroy callback" do
|
|
3340
3590
|
|
|
3341
3591
|
let!(:league) do
|
|
3342
|
-
League.create
|
|
3592
|
+
League.create!
|
|
3343
3593
|
end
|
|
3344
3594
|
|
|
3345
3595
|
let!(:division) do
|
|
3346
|
-
league.divisions.create
|
|
3596
|
+
league.divisions.create!
|
|
3347
3597
|
end
|
|
3348
3598
|
|
|
3349
3599
|
before do
|
|
@@ -3358,15 +3608,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3358
3608
|
context "when updating the parent with all attributes" do
|
|
3359
3609
|
|
|
3360
3610
|
let!(:person) do
|
|
3361
|
-
Person.create
|
|
3611
|
+
Person.create!
|
|
3362
3612
|
end
|
|
3363
3613
|
|
|
3364
3614
|
let!(:address) do
|
|
3365
|
-
person.addresses.create
|
|
3615
|
+
person.addresses.create!
|
|
3366
3616
|
end
|
|
3367
3617
|
|
|
3368
3618
|
before do
|
|
3369
|
-
person.update_attributes(person.attributes)
|
|
3619
|
+
person.update_attributes!(person.attributes)
|
|
3370
3620
|
end
|
|
3371
3621
|
|
|
3372
3622
|
it "does not duplicate the embedded documents" do
|
|
@@ -3381,13 +3631,13 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3381
3631
|
context "when embedding children named versions" do
|
|
3382
3632
|
|
|
3383
3633
|
let(:acolyte) do
|
|
3384
|
-
Acolyte.create(name: "test")
|
|
3634
|
+
Acolyte.create!(name: "test")
|
|
3385
3635
|
end
|
|
3386
3636
|
|
|
3387
3637
|
context "when creating a child" do
|
|
3388
3638
|
|
|
3389
3639
|
let(:version) do
|
|
3390
|
-
acolyte.versions.create(number: 1)
|
|
3640
|
+
acolyte.versions.create!(number: 1)
|
|
3391
3641
|
end
|
|
3392
3642
|
|
|
3393
3643
|
it "allows the operation" do
|
|
@@ -3412,7 +3662,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3412
3662
|
let!(:account) do
|
|
3413
3663
|
Account.new(name: "Testing").tap do |acct|
|
|
3414
3664
|
acct.memberships.build
|
|
3415
|
-
acct.save
|
|
3665
|
+
acct.save!
|
|
3416
3666
|
end
|
|
3417
3667
|
end
|
|
3418
3668
|
|
|
@@ -3424,10 +3674,10 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3424
3674
|
|
|
3425
3675
|
before do
|
|
3426
3676
|
account.name = ""
|
|
3427
|
-
account.save
|
|
3428
3677
|
end
|
|
3429
3678
|
|
|
3430
3679
|
it "does not lose the parent reference" do
|
|
3680
|
+
expect(account.save).to eq false
|
|
3431
3681
|
expect(from_db.memberships.first.account).to eq(account)
|
|
3432
3682
|
end
|
|
3433
3683
|
end
|
|
@@ -3447,15 +3697,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3447
3697
|
context "when moving an embedded document from one parent to another" do
|
|
3448
3698
|
|
|
3449
3699
|
let!(:person_one) do
|
|
3450
|
-
Person.create
|
|
3700
|
+
Person.create!
|
|
3451
3701
|
end
|
|
3452
3702
|
|
|
3453
3703
|
let!(:person_two) do
|
|
3454
|
-
Person.create
|
|
3704
|
+
Person.create!
|
|
3455
3705
|
end
|
|
3456
3706
|
|
|
3457
3707
|
let!(:address) do
|
|
3458
|
-
person_one.addresses.create(street: "Kudamm")
|
|
3708
|
+
person_one.addresses.create!(street: "Kudamm")
|
|
3459
3709
|
end
|
|
3460
3710
|
|
|
3461
3711
|
before do
|
|
@@ -3490,7 +3740,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3490
3740
|
context "when the relation has a default scope" do
|
|
3491
3741
|
|
|
3492
3742
|
let!(:person) do
|
|
3493
|
-
Person.create
|
|
3743
|
+
Person.create!
|
|
3494
3744
|
end
|
|
3495
3745
|
|
|
3496
3746
|
context "when the default scope is a sort" do
|
|
@@ -3560,7 +3810,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3560
3810
|
context "when indexing the documents" do
|
|
3561
3811
|
|
|
3562
3812
|
let!(:person) do
|
|
3563
|
-
Person.create
|
|
3813
|
+
Person.create!
|
|
3564
3814
|
end
|
|
3565
3815
|
|
|
3566
3816
|
context "when the documents have a limiting default scope" do
|
|
@@ -3609,18 +3859,18 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3609
3859
|
context "when the embedded document has an array field" do
|
|
3610
3860
|
|
|
3611
3861
|
let!(:person) do
|
|
3612
|
-
Person.create
|
|
3862
|
+
Person.create!
|
|
3613
3863
|
end
|
|
3614
3864
|
|
|
3615
3865
|
let!(:video) do
|
|
3616
|
-
person.videos.create
|
|
3866
|
+
person.videos.create!
|
|
3617
3867
|
end
|
|
3618
3868
|
|
|
3619
3869
|
context "when saving the array on a persisted document" do
|
|
3620
3870
|
|
|
3621
3871
|
before do
|
|
3622
3872
|
video.genres = [ "horror", "scifi" ]
|
|
3623
|
-
video.save
|
|
3873
|
+
video.save!
|
|
3624
3874
|
end
|
|
3625
3875
|
|
|
3626
3876
|
it "sets the value" do
|
|
@@ -3645,7 +3895,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3645
3895
|
|
|
3646
3896
|
before do
|
|
3647
3897
|
loaded_video.genres = [ "comedy" ]
|
|
3648
|
-
loaded_video.save
|
|
3898
|
+
loaded_video.save!
|
|
3649
3899
|
end
|
|
3650
3900
|
|
|
3651
3901
|
it "sets the new value" do
|
|
@@ -3663,15 +3913,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3663
3913
|
context "when destroying an embedded document" do
|
|
3664
3914
|
|
|
3665
3915
|
let(:person) do
|
|
3666
|
-
Person.create
|
|
3916
|
+
Person.create!
|
|
3667
3917
|
end
|
|
3668
3918
|
|
|
3669
3919
|
let!(:address_one) do
|
|
3670
|
-
person.addresses.create(street: "hobrecht")
|
|
3920
|
+
person.addresses.create!(street: "hobrecht")
|
|
3671
3921
|
end
|
|
3672
3922
|
|
|
3673
3923
|
let!(:address_two) do
|
|
3674
|
-
person.addresses.create(street: "maybachufer")
|
|
3924
|
+
person.addresses.create!(street: "maybachufer")
|
|
3675
3925
|
end
|
|
3676
3926
|
|
|
3677
3927
|
before do
|
|
@@ -3743,7 +3993,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3743
3993
|
context "when the association has an order defined" do
|
|
3744
3994
|
|
|
3745
3995
|
let(:person) do
|
|
3746
|
-
Person.create
|
|
3996
|
+
Person.create!
|
|
3747
3997
|
end
|
|
3748
3998
|
|
|
3749
3999
|
let(:message_one) do
|
|
@@ -3774,11 +4024,11 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3774
4024
|
|
|
3775
4025
|
before do
|
|
3776
4026
|
person.aliases = [ { name: "A", priority: 3 }, { name: "B", priority: 4 }]
|
|
3777
|
-
person.save
|
|
4027
|
+
person.save!
|
|
3778
4028
|
end
|
|
3779
4029
|
|
|
3780
4030
|
let!(:person2) do
|
|
3781
|
-
Person.create( aliases: [ { name: "C", priority: 1 }, { name: "D", priority: 2 }])
|
|
4031
|
+
Person.create!( aliases: [ { name: "C", priority: 1 }, { name: "D", priority: 2 }])
|
|
3782
4032
|
end
|
|
3783
4033
|
|
|
3784
4034
|
it "allows ordering on a key of an embedded document" do
|
|
@@ -3813,7 +4063,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3813
4063
|
context "when updating multiple levels in one update" do
|
|
3814
4064
|
|
|
3815
4065
|
let!(:person) do
|
|
3816
|
-
Person.create(
|
|
4066
|
+
Person.create!(
|
|
3817
4067
|
addresses: [
|
|
3818
4068
|
{ locations: [{ name: "home" }]}
|
|
3819
4069
|
]
|
|
@@ -3827,7 +4077,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3827
4077
|
end
|
|
3828
4078
|
|
|
3829
4079
|
before do
|
|
3830
|
-
from_db.update_attributes(
|
|
4080
|
+
from_db.update_attributes!(
|
|
3831
4081
|
addresses: [
|
|
3832
4082
|
{ locations: [{ name: "work" }]}
|
|
3833
4083
|
]
|
|
@@ -3847,15 +4097,15 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3847
4097
|
context "when the embedded relation sorts on a boolean" do
|
|
3848
4098
|
|
|
3849
4099
|
let(:circuit) do
|
|
3850
|
-
Circuit.create
|
|
4100
|
+
Circuit.create!
|
|
3851
4101
|
end
|
|
3852
4102
|
|
|
3853
4103
|
let!(:bus_one) do
|
|
3854
|
-
circuit.buses.create(saturday: true)
|
|
4104
|
+
circuit.buses.create!(saturday: true)
|
|
3855
4105
|
end
|
|
3856
4106
|
|
|
3857
4107
|
let!(:bus_two) do
|
|
3858
|
-
circuit.buses.create(saturday: false)
|
|
4108
|
+
circuit.buses.create!(saturday: false)
|
|
3859
4109
|
end
|
|
3860
4110
|
|
|
3861
4111
|
it "orders properly with the boolean" do
|
|
@@ -3866,7 +4116,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3866
4116
|
context "when batch replacing multiple relations in a single update" do
|
|
3867
4117
|
|
|
3868
4118
|
let(:document) do
|
|
3869
|
-
Person.create
|
|
4119
|
+
Person.create!
|
|
3870
4120
|
end
|
|
3871
4121
|
|
|
3872
4122
|
let(:person) do
|
|
@@ -3874,23 +4124,23 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
3874
4124
|
end
|
|
3875
4125
|
|
|
3876
4126
|
let!(:symptom_one) do
|
|
3877
|
-
person.symptoms.create
|
|
4127
|
+
person.symptoms.create!
|
|
3878
4128
|
end
|
|
3879
4129
|
|
|
3880
4130
|
let!(:symptom_two) do
|
|
3881
|
-
person.symptoms.create
|
|
4131
|
+
person.symptoms.create!
|
|
3882
4132
|
end
|
|
3883
4133
|
|
|
3884
4134
|
let!(:appointment_one) do
|
|
3885
|
-
person.appointments.create
|
|
4135
|
+
person.appointments.create!
|
|
3886
4136
|
end
|
|
3887
4137
|
|
|
3888
4138
|
let!(:appointment_two) do
|
|
3889
|
-
person.appointments.create
|
|
4139
|
+
person.appointments.create!
|
|
3890
4140
|
end
|
|
3891
4141
|
|
|
3892
4142
|
before do
|
|
3893
|
-
person.update_attributes(
|
|
4143
|
+
person.update_attributes!(
|
|
3894
4144
|
appointments: [ appointment_one.as_document, appointment_two.as_document ],
|
|
3895
4145
|
symptoms: [ symptom_one.as_document, symptom_two.as_document ]
|
|
3896
4146
|
)
|
|
@@ -4223,7 +4473,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
4223
4473
|
context "when the parent has an after create callback" do
|
|
4224
4474
|
|
|
4225
4475
|
before do
|
|
4226
|
-
server.save
|
|
4476
|
+
server.save!
|
|
4227
4477
|
end
|
|
4228
4478
|
|
|
4229
4479
|
it "does not push the embedded documents twice" do
|
|
@@ -4235,7 +4485,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
4235
4485
|
context "when embedded documents are stored without ids" do
|
|
4236
4486
|
|
|
4237
4487
|
let!(:band) do
|
|
4238
|
-
Band.create(name: "Moderat")
|
|
4488
|
+
Band.create!(name: "Moderat")
|
|
4239
4489
|
end
|
|
4240
4490
|
|
|
4241
4491
|
before do
|
|
@@ -4285,7 +4535,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
4285
4535
|
company = Company.new
|
|
4286
4536
|
4.times { |i| company.staffs << Staff.new(age: 50 + i)}
|
|
4287
4537
|
2.times { |i| company.staffs << Staff.new(age: 40)}
|
|
4288
|
-
company.save
|
|
4538
|
+
company.save!
|
|
4289
4539
|
company.staffs.delete_if {|x| x.age >= 50}
|
|
4290
4540
|
expect(company.staffs.count).to eq(2)
|
|
4291
4541
|
end
|
|
@@ -4362,7 +4612,7 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
4362
4612
|
context "when the parent is persisted" do
|
|
4363
4613
|
|
|
4364
4614
|
let(:zone) do
|
|
4365
|
-
DNS::Zone.create
|
|
4615
|
+
DNS::Zone.create!
|
|
4366
4616
|
end
|
|
4367
4617
|
|
|
4368
4618
|
let(:soa_1) do
|
|
@@ -4400,4 +4650,24 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
|
|
|
4400
4650
|
end
|
|
4401
4651
|
end
|
|
4402
4652
|
end
|
|
4653
|
+
|
|
4654
|
+
context "when using assign_attributes with an already populated array" do
|
|
4655
|
+
let(:post) { EmmPost.create! }
|
|
4656
|
+
|
|
4657
|
+
before do
|
|
4658
|
+
post.assign_attributes(company_tags: [{id: BSON::ObjectId.new, title: 'a'}],
|
|
4659
|
+
user_tags: [{id: BSON::ObjectId.new, title: 'b'}])
|
|
4660
|
+
post.save!
|
|
4661
|
+
post.reload
|
|
4662
|
+
post.assign_attributes(company_tags: [{id: BSON::ObjectId.new, title: 'c'}],
|
|
4663
|
+
user_tags: [])
|
|
4664
|
+
post.save!
|
|
4665
|
+
post.reload
|
|
4666
|
+
end
|
|
4667
|
+
|
|
4668
|
+
it "has the correct embedded documents" do
|
|
4669
|
+
expect(post.company_tags.length).to eq(1)
|
|
4670
|
+
expect(post.company_tags.first.title).to eq("c")
|
|
4671
|
+
end
|
|
4672
|
+
end
|
|
4403
4673
|
end
|