Log message:
Update ruby-shoulda-matchers to 2.8.0.
pkgsrc change: allow build on Ruby 2.2.
# 2.8.0
### Deprecations
* `ensure_length_of` has been renamed to `validate_length_of`.
`ensure_length_of` is deprecated and will be removed in 3.0.0.
* `set_the_flash` has been renamed to `set_flash`. `set_the_flash` is
deprecated and will be removed in 3.0.0.
* `set_session(:foo)` is deprecated in favor of `set_session[:foo]`.
`set_session(:foo)` will be invalid syntax in 3.0.0.
* Using `should set_session[:key].to(nil)` to assert that that a value has not
been set is deprecated. Please use `should_not set_session[:key]` instead.
In 3.0.0, `should set_session[:key].to(nil)` will only pass if the value is
truly nil.
### Bug fixes
* Fix `delegate_method` so that it works again with shoulda-context. ([#591])
* Fix `validate_uniqueness_of` when used with `scoped_to` so that when one of
the scope attributes is a polymorphic `*_type` attribute and the model has
another validation on the same attribute, the matcher does not fail with an
error. ([#592])
* Fix `has_many` used with `through` so that when the association does not
exist, and the matcher fails, it does not raise an error when producing the
failure message. ([#588])
* Fix `have_and_belong_to_many` used with `join_table` so that it does not fail
when `foreign_key` and/or `association_foreign_key` was specified on the
association as a symbol instead of a string. ([#584])
* Fix `allow_value` when an i18n translation key is passed to `with_message` and
the `:against` option is used to specify an alternate attribute. A bug here
also happened to affect `validate_confirmation_of` when an i18n translation
key is passed to `with_message`. ([#593])
* Fix `class_name` qualifier for association matchers so that if the model being
referenced is namespaced, the matcher will correctly resolve the class before
checking it against the association's `class_name`. ([#537])
* Fix `validate_inclusion_of` used with `with_message` so that it fails if given
a message that does not match the message on the validation. ([#598])
* Fix `route` matcher so that when controller and action are specified in hash
notation (e.g. `posts#show`), route parameters such as `id` do not need to be
specified as a string but may be specified as a number as well. ([#602])
* Fix `allow_value`, `validate_numericality_of` and `validate_inclusion_of` so
that they handle RangeErrors emitted from ActiveRecord 4.2. These exceptions
arise whenever we attempt to set an attribute using a value that lies outside
the range of the column (assuming the column is an integer). RangeError is now
treated specially, failing the test instead of bubbling up as an error.
([#634], [#637], [#642])
### Features
* Add ability to test `:primary_key` option on associations. ([#597])
* Add `allow_blank` qualifier to `validate_uniqueness_of` to complement
the `allow_blank` option. ([#543])
* Change `set_session` so that #[] and #to qualifiers are optional, similar to
`set_flash`. That is, you can now say `should set_session` to assert that any
flash value has been set, or `should set_session.to('value')` to assert that
any value in the session is 'value'.
* Change `set_session` so that its #to qualifier supports regexps, similar to
`set_flash`.
* Add `with_prefix` qualifier to `delegate_method` to correspond to the `prefix`
option for Rails's `delegate` macro. ([#622])
* Add support for Rails 4.2, especially fixing `serialize` matcher to remove
warning about `serialized_attributes` being deprecated. ([#627])
* Update `dependent` qualifier on association matchers to support `:destroy`,
`:delete`, `:nullify`, `:restrict`, `:restrict_with_exception`, and
`:restrict_with_error`. You can also pass `true` or `false` to assert that
the association has (or has not) been declared with *any* dependent option.
([#631])
### Improvements
* Tweak `allow_value` failure message so that it reads a bit nicer when listing
existing errors.
[#591]: https://github.com/thoughtbot/shoulda-matchers/pull/591
[#592]: https://github.com/thoughtbot/shoulda-matchers/pull/592
[#588]: https://github.com/thoughtbot/shoulda-matchers/pull/588
[#584]: https://github.com/thoughtbot/shoulda-matchers/pull/584
[#593]: https://github.com/thoughtbot/shoulda-matchers/pull/593
[#597]: https://github.com/thoughtbot/shoulda-matchers/pull/597
[#537]: https://github.com/thoughtbot/shoulda-matchers/pull/537
[#598]: https://github.com/thoughtbot/shoulda-matchers/pull/598
[#602]: https://github.com/thoughtbot/shoulda-matchers/pull/602
[#543]: https://github.com/thoughtbot/shoulda-matchers/pull/543
[#622]: https://github.com/thoughtbot/shoulda-matchers/pull/622
[#627]: https://github.com/thoughtbot/shoulda-matchers/pull/627
[#631]: https://github.com/thoughtbot/shoulda-matchers/pull/631
[#634]: https://github.com/thoughtbot/shoulda-matchers/pull/634
[#637]: https://github.com/thoughtbot/shoulda-matchers/pull/637
[#642]: https://github.com/thoughtbot/shoulda-matchers/pull/642
# 2.7.0
### Deprecations
* `ensure_inclusion_of` has been renamed to `validate_inclusion_of`.
`ensure_inclusion_of` is deprecated and will be removed in 3.0.0.
* `ensure_exclusion_of` has been renamed to `validate_exclusion_of`.
`ensure_exclusion_of` is deprecated and will be removed in 3.0.0.
### Bug fixes
* Fix `delegate_method` so that it does not raise an error if the method that
returns the delegate object is private.
* Warn when `ensure_inclusion_of` is chained with `.in_array([false, true])`
as well as with `.in_array([true, false])`.
* Fix `set_session` so that the `to` qualifier if given nil checks that the
session variable in question was set to nil (previously this actually did
nothing).
* Fix `filter_param` so that it works when `config.filter_parameters` contains
regexes.
* Fix `delegate_method` so that it can be required independent of Active
Support.
* Fix `validate_uniqueness_of`. When used against an unpersisted record whose
model contained a non-nullable column other than the one being validated, the
matcher would break. Even if the test set that column to a value beforehand,
the record had to be persisted in order for the matcher to work. Now this is
no longer the case and the record can remain unpersisted.
* Fix `validate_absence_of`: it required that a string be passed as the
attribute name rather than a symbol (which is the usual and documented usage).
### Improvements
* `have_and_belongs_to_many` now checks to make sure that the join table
contains the correct columns for the left- and right-hand side of the
association.
* Reword failure message for `delegate_method` so that it's a little more
helpful.
### Features
* Add new matcher `define_enum_for` to test usage of the `enum` macro introduced
in Rails 4.1.
|
Log message:
Updated to 2.6.2. ruby18 isn't supported. From NEWS.md:
### Bug fixes
* If you have a Rails >= 4.1 project and you are running tests using Spring,
matchers that depend on assertions within Rails' testing layer (e.g.
`render_template` and `route`) will no longer fail.
* Fix `permit` so that it can be used more than once in the same test.
* Revert change to `validate_uniqueness_of` made in 2.6.0 so that it no longer
provides default values for non-primary, non-nullable columns. This approach
was causing test failures because it makes the assumption that none of these
columns allow only specific values, which is not true. If you get an error
from `validate_uniqueness_of`, your best bet continues to be creating a record
manually and calling `validate_uniqueness_of` on that instead.
### Other changes
* The majority of warnings that the gem produced have been removed. The gem
still produces warnings under Ruby 1.9.3; we will address this in a future
release.
|