docbrown/spec/requests
Jeremy Friesen 0d0464be2f
Allowing VariantQuery for Feed Generation (#17382)
* Allowing VariantQuery for Feed Generation

Apologies for the breadth of this pull request, I had considered many
small commits, but felt that would've been more effort for the value
provided.

This commit includes the following:

- Documentation updates to the feed variant (though not the final pass)
- Renaming and adding RelevancyLevers that help differentiate
- Adding RelevancyLever#range to provide documentation
- Reducing redundent controller logic by making a
  `Articles::Feeds.feed_for` method.
- Adding some configuration validation for RelevancyLevers
- Adding constants for better clarification
- Testing unhappy paths for feed configuration
- Adjusting the module namespace of some objects
- Exposing top-level configurations for variants (along with their
  defaults)
- Creating the VariantyQuery that at present inherits from the
  `Articles::Feeds::WeightedQueryStrategy`

As implemented, we can deploy this code to production without using the
new VariantQuery.  Once we toggle on the
`:feed_uses_variant_query_feature` FeatureFlag, it will switch to using
the VariantQuery.  The VariantQuery's two variants and the
internal configuration of `Articles::Feeds::WeightedQueryStrategy`
produce the same query.

The goal of this factor is to allow for a quick on and off toggle of the
feed query; to ensure that what we introduce remains performant.

- Closes forem/forem#17272
- Closes forem/forem#17276
- Closes forem/forem#17216

In addition, I will be recording a code-walkthrough and linking that
recording to the pull request.

* Apply suggestions from code review

Co-authored-by: Mac Siri <krairit.siri@gmail.com>

Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2022-04-21 11:07:09 -04:00
..
admin Attempt to fix a flakey test (#17285) 2022-04-14 16:02:56 +02:00
api/v0 Prefer "listing" to "classified_listing" in the api (#17021) 2022-03-28 13:40:00 -05:00
articles Add minimal test on rss feed response (#17221) 2022-04-12 16:59:40 -05:00
incoming_webhooks/mailchimp Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
notifications [deploy] Remove All Notification Count Helper Classes (#8221) 2020-06-02 09:48:02 -05:00
podcasts Refactoring questions asked of user (#15762) 2021-12-21 12:45:12 -05:00
shared_examples Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
stories Allowing VariantQuery for Feed Generation (#17382) 2022-04-21 11:07:09 -04:00
user Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
api_secrets_create_spec.rb Rubocop: move dot in multi-line calls to leading position (#9262) 2020-07-16 15:51:11 +02:00
api_secrets_destroy_spec.rb
article_approvals_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
async_info_spec.rb Remove Creator Onboarding Feature Flags from Codebase (#15982) 2022-01-31 11:30:43 -07:00
badges_spec.rb
collections_spec.rb Show correct number in series truncation. (#13799) 2021-05-24 15:47:06 -06:00
comments_create_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
comments_destroy_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
comments_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
comments_update_spec.rb [deploy] Remove redirect on comments#update (#10337) 2020-09-29 15:33:51 -04:00
credits_spec.rb [deploy] Rename classified listings (#7910) 2020-05-27 13:35:09 +00:00
dashboard_spec.rb Ensuring the same policies for analytics (#16997) 2022-03-25 14:57:01 -04:00
devices_spec.rb ForemMobile namespaced functions (#15212) 2021-11-23 15:25:29 -06:00
discussion_locks_spec.rb Spelling (#15702) 2021-12-07 06:59:10 -07:00
display_ad_events_spec.rb Extracting constants and tidying tests (#15946) 2022-01-05 09:19:39 -05:00
editor_spec.rb Ensuring /new remains a call to action end point for DEV (#17294) 2022-04-14 14:50:40 -04:00
email_subscriptions_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
feedback_messages_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
followings_spec.rb Refactoring to add helper method (#16064) 2022-01-12 11:21:44 -05:00
follows_bulk_show_spec.rb Spelling (#15702) 2021-12-07 06:59:10 -07:00
follows_bulk_update_spec.rb Update all followed tag with one click (#11454) 2021-01-05 16:15:37 +01:00
follows_create_spec.rb Clear the cached settings before testing the rate limiter (#13669) 2021-05-05 14:34:22 -05:00
follows_show_spec.rb Rubocop: enable and fix Style/Send and Style/Next (#9366) 2020-07-20 16:28:00 +02:00
ga_events_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
github_repos_spec.rb ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
html_variant_successes_spec.rb Replace peform_enqueued_jobs with sidekiq_perform_enqueued_jobs in specs (#6454) 2020-03-04 11:39:48 -07:00
html_variant_trials_spec.rb Replace peform_enqueued_jobs with sidekiq_perform_enqueued_jobs in specs (#6454) 2020-03-04 11:39:48 -07:00
image_uploads_spec.rb Refactor:Change Image Article Upload Path to uploads/articles (#12668) 2021-02-15 11:52:00 -06:00
invitations_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
liquid_embeds_spec.rb Move work from template to controller (#16092) 2022-01-18 11:21:25 -05:00
liquid_tags_request_spec.rb [deploy] Add LiquidTagsController (#10241) 2020-09-08 12:07:33 -04:00
listings_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
moderations_spec.rb Spelling (#15702) 2021-12-07 06:59:10 -07:00
notification_counts_spec.rb [deploy] Optimization:Use Scope and current_user to Get Notification Count (#8177) 2020-06-01 09:27:46 -05:00
notification_subscriptions_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
notifications_spec.rb Rename User.dev_account to User.staff_account (#14321) 2021-07-26 10:46:26 -04:00
onboardings_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
open_search_spec.rb Clean up SiteConfig (#13738) 2021-05-18 09:38:31 +07:00
organizations_update_spec.rb Upgrade Rails to 6.1.3.1 (#11333) 2021-04-05 10:39:48 -04:00
page_views_spec.rb Extract page view updates into workers (#12686) 2021-02-17 09:24:05 +07:00
pages_spec.rb Remove hardcoded /badge page that is DEV-only ✂️✂️✂️ (#16303) 2022-01-27 13:29:05 -05:00
poll_skips_spec.rb Small ActiveRecord optimizations: begone race conditions and hello bulk insert (#8436) 2020-06-15 17:57:14 +02:00
poll_votes_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
profile_field_groups_request_spec.rb Deployment Task: Update onboarding fields prior to #11629 (#11704) 2020-12-07 14:57:18 -05:00
profile_pins_spec.rb
profile_preview_cards_spec.rb Profile attribute names should be unique and non-empty (#16396) 2022-04-04 12:14:02 -05:00
profiles_request_spec.rb Drop profile columns from user (#10707) 2020-12-03 08:14:38 +07:00
rating_votes_spec.rb
reactions_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
reading_list_items_spec.rb [deploy] Fix Reading List Counter Without last_reacted_at Default (#10933) 2020-10-19 13:26:19 -05:00
registrations_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
response_templates_spec.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
search_spec.rb Added "Tags" category to search results (#16265) 2022-01-26 20:51:15 +03:00
sidebars_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
sitemaps_spec.rb Fix legacy sitemap logic (#14926) 2021-10-07 08:59:16 -04:00
social_previews_spec.rb Remove SheCoded Specific Code (#13363) 2021-04-12 11:04:58 -07:00
stories_index_spec.rb Use the canonical URLs to link from sorted pages (#16928) 2022-03-22 14:51:36 +00:00
stories_show_spec.rb Moved setting old_username from before_validation to Users::Update (#15782) 2021-12-20 11:08:09 +03:00
stripe_active_cards_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
tag_adjustments_spec.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
tags_spec.rb Add ability to bulk search tags by name or id (#16671) 2022-02-24 12:34:50 -05:00
universal_links_spec.rb Add exclusion to AASA supported paths (#14593) 2021-08-26 10:17:39 -06:00
user_blocks_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
user_subscriptions_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
users_onboarding_spec.rb Routine Rubocop fixes (#16838) 2022-03-09 09:32:50 -05:00
video_states_update_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
videos_spec.rb Ensuring VideoPolicy#new? is canonical (#16735) 2022-03-01 11:46:31 -05:00