Releases: thoughtbot/shoulda-matchers
Releases · thoughtbot/shoulda-matchers
v7.0.1
7.0.1 - 2025-10-31
Bug fixes
- Hotfix: Add mutex_m gem dependency by @matsales28 and @garrettgregor (#1687)
v7.0.0
7.0.0 - 2025-10-31
Backward-incompatible changes
- Drop support for Rails 6.1 and older by @matsales28 (#1678)
- Drop support for Rails 7.0 by @matsales28 (#1680)
Bug fixes
Features
- Add support for Rails 8 by @matsales28 (#1677)
- Add Rails 8.1 support by @matsales28 (#1682)
- Support encrypted ActionText attributes by @spdawson (#1667)
- Add
service,strict_loading, anddependentoptions tohave_attachedmatcher by @matsales28 (#1675)
Improvements
- Refactor Ruby manager setup, add mise integration by @amalrik (#1674)
- Update Ruby versions to latest stable releases by @matsales28 (#1676, #1683)
- Update supported Ruby versions to 3.3.10 and 3.4.7
v6.5.0
What's Changed
- Update CODEOWNERS by @vsppedro in #1648
- docs: add section on testing style that we promote (#1645) by @clemens in #1649
- Matcher delegate_method supports 'private: true' by @pr0d1r2 in #1653
- Documentation Readability Enhancement by @JuzerShakir in #1658
- Automatically Generated: Update Dynamic Section in README by @github-actions in #1660
- Enable sqlite3 2.x+ by @voxik in #1661
- refactor: Use
merge!instead ofmergewhen merging hashes by by @matsales28 in #1650 - Optionally specify alternatives for uniqueness by @lake-effect in #1664
- Fix literal string modification by @asilano in #1665
New Contributors
- @clemens made their first contribution in #1649
- @pr0d1r2 made their first contribution in #1653
- @JuzerShakir made their first contribution in #1658
- @lake-effect made their first contribution in #1664
- @asilano made their first contribution in #1665
Full Changelog: v6.4.0...v6.5.0
v6.4.0
v6.3.1
v6.3.0
6.3.0 - 2024-08-09
What's Changed
Bug fixes
- Fix uniqueness check for a polymorphic association with STI by @matsales28 (#1624)
Features
- Add
defaultqualifier todefine_enum_formatcher by @matsales28 (#1627) - Add validating qualifier to enum matcher by @matsales28 (#1630)
- Add without_instance_methods qualifier to enum matcher by @vaot (#1636)
Improvements
- Update dependencies of rails-6.1 gemfile by @matsales28 (#1621)
- Update dependencies of rails-7_1 gemfile by @matsales28 (#1619)
- Update dependencies of rails-7.0 gemfile by @matsales28 (#1620)
- Support deprecated status code symbols by @ioquatix (#1637)
- Remove useless
loggerrequire by @Earlopain (#1634)
v6.2.0
6.2.0 - 2024-03-15
Bug fixes
- Allow beginless and endless ranges in validates_inclusion_of by @pjpires (#1615)
- Ensure uniqueness validation matcher works with STI by @matsales28 (#1610)
Features
- Add
againstmethod in allow_value matcher by @EduardoSCosta (#1543) - Add support for
strict_loadingoption in association matchers by @rhannequin and @laicuRoot (#1607) - Add
have_delegated_typematcher by @matsales28 (#1606) - Add support for
foreign_typequalifier onAssociationMatcherby @matsales28 (#1609)
Improvements
- Lazy load
ActionControllerandRoutingmatchers forActionController::TestCaseby @ilianah (#1613) - Call dynamic-readme reusable workflow by @stefannibrasil (#1617)
- Update dependencies by @matsales28 (#1611)
- Fix inline documentation for
is_greater_thaninvalidate_comparison_ofmatcher by @jeduardo824 (#1616) - Fix forgotten colon in documentation by @hotoolong (#1612)
v6.1.0
6.1.0 - 2024-01-19
Bug fixes
- Fix negative form of
validate_numericalitymatcher by @matsales28 (#1603)
Features
- Add support for negated matcher on have_secure_password matcher by @amalrik (#1593)
- Add
encryptmatcher to test usage of theencryptsmacro by @theforestvn88 (#1581) - Add
query_constraintsqualifier on the association matchers by @matsales28 (#1604)
Improvements
- Remove
array_column?helper fromValidateAbsenceOfMatcherby @jarenas9539 (#1562) - Bump rubocop version to 1.59.0 by @vsppedro (#1600)
- Update Ruby version to 3.3.0 by @VSSPedro(#1599)
- Fix
REPRODUCTION_SCRIPT.mdlink returning 404 by @vsppedro (#1602) - Add support for globally enabled frozen-string-literals by @amalrik (#1598)
- Adjust typos in the documentation by @matsales28 (#1597)
v6.0.0
Backward-incompatible changes
- Drop support for Rails 5.2 and 6.0 as well as Ruby 2.6 and 2.7 they've been end-of-lifed by @dougmrqs and @HeitorMC.
The gem now supports Ruby 3.0+ and Rails 6.1+. (#1521, #1522, #1547, #1548)
Bug fixes
- Fix validate_uniqueness_of matcher not supporting column of the type timestampz by @callahat. (#1544)
- Ensure that validation specs work for ActiveModel without ActiveRecord by @stonefield. (#1580)
Features
- Add normalize matcher by @stephannv. (#1558)
- Add validates_comparison_of matcher by @matsales28. (#1552)
- Add support for Ruby 3.2 by @petergoldstein. (#1536)
- Add support for Ruby 3.3.0-rc1 by @mtasaka and @vsppedro. ([#1579], #1588)
- Add support for Rails 7.1 by @matsales28. (#1573)
- Add support for array attributes on validate_length_of matcher by @jarenas9539. #1560
- Allow length validation on associations by @matsales28. (#1569)
- Improve have_db_index to better handle columns with multiple indexes by @abrom. (#1542)
- Implement of_sql_type qualifier on have_db_column matcher by @matsales28. (#1555)
Improvements
- When an unrelated error is seen with negated allow_value, give a hint by @matsales28. (#1570)
Thanks everyone for the contributions!