shoulda-matchers v4.4.1 Release Notes

Release Date: 2020-08-26 // 3 months ago
  • ๐Ÿ› Bug fixes

    • โช Revert reorganization around autoloading introduced in 4.4.0 which prevented matchers from being loaded. (#1334)

Previous changes from v4.4.0

  • ๐Ÿ› 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 public validators_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 are time columns. (#1190)

    • Fix have_and_belong_to_many so that when using the join_table qualifier you can pass a symbol rather than a string. (#1323)

    ๐Ÿ”‹ Features

    • Add an ignoring_check_for_db_index qualifier to the have_secure_token matcher, since has_secure_token encourages use of an index but does not enforce it. (#1278)

    • Add allow_blank to validate_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 to validate_numericality_of to be able to test the numericality validation's :other_than option. (#1282)

    • Add a new have_one_attached and have_many_attached matchers for testing the new model-level ActiveStorage macros in Rails 6. (#1102)

    ๐Ÿ‘Œ Improvements

    • โšก๏ธ Update have_many when used against a :through association so that it fails if the inverse model does not have a belongs_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 autoloads. (#1320)