Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade mocha to v2.0.0.alpha.1 without deployment actions #3

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

floehopper
Copy link
Member

⚠️ This repo is Continuously Deployed: make sure you follow the guidance ⚠️

We don't want to run those on this fork!
This avoids the following deprecation warning:

    Mocha deprecation warning at test/test_helper.rb:34:in `block in
    <main>': Configuration#reinstate_undocumented_behaviour_from_v1_9=
    is unnecessarily being set to false, because this is now the default
    value. Configuration#reinstate_undocumented_behaviour_from_v1_9=
    will be removed in the future, so you should avoid calling it.
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/
@floehopper floehopper force-pushed the upgrade-mocha-to-v2.0.0.alpha.1-without-deployment-actions branch from 67b7c3c to 0a434c0 Compare October 18, 2022 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant