Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP: Fix some Mocha deprecation warnings
This fixes some of the warnings related to strict keyword argument matching, like this one: Mocha deprecation warning at app/services/asset_manager/attachment_updater/update.rb:15:in `call': Expectation defined at test/unit/services/asset_manager/attachment_updater/draft_status_updates_test.rb:28: in `block (3 levels) in <class:DraftStatusUpdatesTest>' expected keyword arguments ("draft" => true), but received positional hash ({"draft" => true}). These will stop matching when strict keyword argument matching is enabled. See the documentation for Mocha::Configuration#strict_keyword_argument_matching=. In order to fix the warnings, I've changed the signature of AssetManager::AssetUpdater#call so that new_attributes parameter must be supplied as keyword arguments rather than a positional Hash. This had the advantage that I only needed to change AssetManager::AttachmentUpdater::Update#call to convert the deep_stringify_keys into keyword arguments using a double-splat; I didn't need to change all the places where AssetManager::AssetUpdater#call is stubbed. An alternative would be to leave the signature of AssetManager::AssetUpdater#call unchanged and change the calls to Expectation#with for all the relevant stubs to pass a positional Hash, i.e. wrapped in braces. This article [1] is a very useful reference. [1]: https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
- Loading branch information