docbrown/spec/workers
Daniel Uber 4b4d8a7234
Ensure arguments to perform_async are json safe (#16285)
* Convert symbol hash keys to strings when calling .perform_async

Fixes a warning from Sidekiq 6.4.0+ about perform_async arguments
which are not equal when passed to perform (`JSON.parse(JSON.dump(arg))`
should equal arg).

This is a safety measure to prevent passing objects (like classes, or
model instances) rather than their representations (like a class name,
or a model's attributes hash).

This warning will be an error in sidekiq 7

* Turn warning into an error in non-production environments

* Use string keys for reaction notification and article fetched

Missed these two on the first pass

* Update example argument hashes for #enqueues_on_correct_queue

Since this calls perform_async under the hood we need to pass json
safe hashes in the test cases as well.

https://github.com/forem/forem/blob/main/spec/workers/shared_examples/enqueues_on_correct_queue.rb

* Convert keys from FollowData#to_h to string before perform_async

I'm not sure enough where else (outside of notification) to_h is being
called, so I'm converting here when building args, rather than in
FollowData#to_h, which might be my next step.

* Let FollowData#to_h return a hash with string keys

Update spec to use string keys as well.

* Make to_h return string keys for ReactionData

Like FollowData, the #to_h method is only used to call
notifications (this is used to enqueue sidekiq jobs).

* Remove a key that was in the hash

Since reaction_data calls to_h, it gets string and not symbol,
keys. Call Hash#except with a key that was actually there.
2022-01-25 18:07:40 -06:00
..
articles Ensuring we don't track views of author or unpublished (#16143) 2022-01-18 11:23:18 -05:00
badge_achievements Split BadgeRewarder into multiple services (#11902) 2020-12-23 09:55:06 -05:00
broadcasts Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
comments Refactor EdgeCache (#11684) 2020-12-02 14:20:22 -05:00
credits Refactor:Move Credit Counter Cache Sync to Sidekiq (#9972) 2020-08-24 14:20:11 -05:00
discover Add Forem Discover registration worker and service (#14865) 2021-10-01 10:27:31 -04:00
emails Delete old retained emails after certain period (#14949) 2021-10-12 16:27:13 -04:00
feeds Change signature of Feeds::ImportArticlesWorker (#13971) 2021-06-17 14:28:23 -04:00
follows Save article (to cache tags) before updating follow points (#15637) 2021-12-02 14:41:27 -06:00
github_repos ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
html_variants [deploy] Refactor:Move Remove Old HTML Variant Data task to Sidekiq (#9925) 2020-08-22 18:36:22 -05:00
listings Update bust_listings to service (#12050) 2020-12-29 09:52:34 +01:00
mentions [15-min-fix] Ensure mention worker delivers email (#14038) 2021-06-22 14:29:56 -04:00
metrics Boost priority of queue stats worker (#14173) 2021-07-09 09:28:43 -05:00
moderator Refactoring questions asked of user (#15762) 2021-12-21 12:45:12 -05:00
notification_subscriptions Add Article post_commit when user_id changes with specs (#15132) 2021-10-25 10:53:21 +07:00
notifications Rubocop fixes (#14868) 2021-09-30 13:22:09 -04:00
organizations Rubocop fixes (#15892) 2021-12-28 09:11:41 -06:00
pages Update .bust_page to EdgeCache::BustPage (#11952) 2020-12-18 11:21:54 -05:00
podcast_episodes Rubocop fixes (#15892) 2021-12-28 09:11:41 -06:00
podcasts Ensure arguments to perform_async are json safe (#16285) 2022-01-25 18:07:40 -06:00
rating_votes Remove Elasticsearch ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ (#13606) 2021-05-03 11:09:45 -04:00
reactions Add conditional autovomits to user name and improve user score recalc (#14858) 2021-10-05 10:11:41 -04:00
shared_examples Add field test gem to establish a/b testing (#6283) [deploy] 2020-03-03 10:21:29 -05:00
slack/messengers Ensure arguments to perform_async are json safe (#16285) 2022-01-25 18:07:40 -06:00
tags Update bust_tag to EdgeCache::BustTag (#11953) 2020-12-21 14:43:42 -05:00
users Refactor AB Experiments and exercise all variants in rspec (#16236) 2022-01-24 17:03:58 -05:00
bust_cache_path_worker_spec.rb Refactor cache purging (#12811) 2021-03-02 10:09:05 -05:00
data_update_worker_spec.rb Spelling (#15702) 2021-12-07 06:59:10 -07:00
export_content_worker_spec.rb Update data exporter to handle admin send (#10274) 2020-10-26 18:00:56 -04:00