Releases: thoughtbot/shoulda-matchers
v5.0.0.rc1
Bug fixes
- Replace
in?
, method from ActiveSupport, withinclude?
to prevent exception "undefined methodin?
" on non-Rails app. (#1405)
Features
-
Add support for Rails 6.1. No new Rails 6.1 features are supported, but only
existing features that broke with the upgrade. (#1418) -
Add support for RVM (Ruby Version Manager) to setting up local environment. (#1424)
-
Add support for alias in matcher define_enum. (#1419)
Backward-incompatible changes
-
Drop support for Rails 4.2, 5.0 and 5.1 as well as Ruby 2.4 and 2.5
they've been end-of-lifed. The gem now supports Ruby 2.6+ and Rails 5.2+.(#1412, #1415, #1422, #1428, #1429) -
Remove deprecated matchers:
use_before_filter
,use_after_filter
,use_around_filter
andallow_mass_assignment_of
. (#1430, #1431)
v4.5.1
v4.5.0
Features
- Add support for has_secure_password custom attributes. (#1356)
Bug fixes
- Fix
bundle exec yard doc
replacing pygments.rb with rouge to keep the documentation up to date. (#1343) - Fix have_db_column.with_options not raising an error when the user adds an invalid value. (#1358)
- Fix default value of assossiation_matcher.validate option. It was returning false instead of true. (#1378)
- Fix validate_absence_of failing for array columns. (#1383)
Improvements
- Replace all links with http to https. (#1340)
- Update the links for have_and_belong_to_many, have_many and have_one in the README to redirect the user to where the matcher description starts. (#1348)
- Drop
git ls-files
in gemspec to help downstreams maintenance, because they often need to build packages in an environment that does not have git. (#1354) - Add comment about no support of validate_uniqueness_of(:item).scoped_to(array). (#1355)
- Improve error message for assossiation_matcher.with_foreign_key option. (#1376)
v4.4.0
Features
-
Add an
ignoring_check_for_db_index
qualifier to thehave_secure_token
matcher, sincehas_secure_token
encourages use of an index but does not
enforce it. (#1278) -
Add
allow_blank
tovalidate_length_of
to match other validation matchers.
(#725, #1318) -
Add new matcher
have_implicit_order_column
which can be used to test the
implicit_order_column
setting for ActiveRecord models under Rails 6+.
(#1243) -
Add a new
is_other_than
qualifier tovalidate_numericality_of
to be able
to test the numericality validation's:other_than
option. (#1282) -
Add a new
have_one_attached
andhave_many_attached
matchers for testing
the new model-level ActiveStorage macros in Rails 6. (#1102)
Bug fixes
-
Fix performance of
allow_value
so that it doesn't hang if the given value is
really long. (#1290) -
Fix
have_many
so that it is possible to test an association that has a scope
that takes an argument. (#952, #992) -
Update
validate_uniqueness_of
to use the publicvalidators_on
instead of
the private_validators
when reading validations off of a model. This
enables shoulda-matchers to be used with the schema_validations gem.
(#995) -
Update
validate_uniqueness_of
to work with scopes that aretime
columns.
(#1190) -
Fix
have_and_belong_to_many
so that when using thejoin_table
qualifier
you can pass a symbol rather than a string. (#1323)
Improvements
-
Update
have_many
when used against a:through
association so that it fails
if the inverse model does not have abelongs_to
association. (#646,
#723, c0a1578) -
Add Ruby 2.7 to test matrix and default development Ruby. (#1310)
-
Remove warnings emitted on Ruby 2.7 in
word_wrap
. (#1314) -
Remove warnings emitted on Ruby 2.7 in Doublespeak. (#1328)
-
Clean up requires within the code by converting them to
autoload
s. (#1320)
v4.3.0
v4.2.0
Features
- Add support for
optional: false
inbelongs_to
associations. (#1237) - Add support for associations with
inverse_of: false
and non-standard foreign key (#1106)
Bug fixes
- Fix typos in documentation of
allow_values
(#1241) - Fix appraisal command in CONTRIBUTING.md file (#1253)
Improvements
- Remove
minitest-reporters
dependency ([#1251]) - Development dependency updates
v4.1.1
Bug fixes
- Patch some backward-incompatible changes to
validate_presence_of
that were
made in the last version. As of 4.1.0 the presence matcher now checks to
ensure that empty string will cause the record to be invalid (in addition to
nil, which it was already checking against). However, this check was being
performed even if the attribute or column the presence matcher is being run
against didn't support being set to an empty string. This releases fixes this.
(#1222, #1224, #1231)
v4.1.0
Bug fixes
- Fix
validate_uniqueness_of
so that it works when a scope is defined as a
string instead of a symbol on the model. (#1176) - Fix
have_db_index
so that it can be used against multiple models that are
connected to different databases. (#1200)
Features
- Add support for Rails 6. No new Rails 6 features are supported, but only
existing features that broke with the upgrade. (#1193) - Add support for expression indexes (Rails 5, Postgres only) to
have_db_index
. (#1211) - Add
allow_nil
to thevalidate_presence_of
matcher. (834d8d0, #1100)
Improvements
- Update
validate_presence_of
so that if it is being used against an
association which isrequired: true
oroptional: false
, or it is not
configured as such but ActiveRecord defaultsbelong_to
associations to
optional: false
, and the matcher fails, the developer is reminded in the
failure message that thebelong_to
matcher can be used instead. (#1214,
8697b01) - Update
define_enum_for
so that it produces a more helpful message on
failure. (#1216)
v4.0.1
v4.0.0 (yanked)
- Rails 5.x support
- Ruby 2.4+ support
- Improve negative versions of validation matchers
- Drop support for Ruby 2.0 and 2.1
- Drop support Rails 4.0 and 4.1