docbrown/spec/requests
Daniel Uber 14caad86a7
handle deleted article's comments page with a 404 response (#15351)
* Add a failing test for comments index of deleted article

After https://github.com/forem/forem/pull/15052 removed the (also
broken) deleted commentable template and the redirect, requests for
comments from deleted articles raise no method errors (initially
trying to set the page title to "Comments for commentable.title" but
the assumption that @commentable is non-nil is present in several
other places.

This test currently fails (by design). Either we want to update the
controller so that comments from deleted articles are no longer
viewable (returning not found, as we did prior to
https://github.com/forem/forem/pull/5199 or making the view safe for
the case where @commentable is nil and no @root_comment is present.

These requests are happening quite frequently (@maestromac and I
suspect the sitemap may contain these pages and crawlers are visiting
the site from a published link), as evidenced by
https://app.honeybadger.io/projects/66984/faults/81994265

* Add request spec for deleted article scenario

Additionally, relabel the legacy spec (updated during #15052) to
clarify we do not render the deleted_commentable_comment view (this is
testing the comment.path, rather than the article.path/comments index

The scenario with comment.path sets `@root_comment` in the controller,
so does not trigger errors on the `@commentable` method calls.

* Update view

pass 1: get the errors to stop (need to check the rendered page is
also usable, the comment tree is not shown when commentable is nil and
this might be a huge usability/correctness issue).

* extract logic from comments index to methods and update tests

We no longer expect deleted article's comments index to render (should
return 404), only direct links to comments of deleted articles.

Only assign @article in the index for the view if it is in fact an
article (not a podcast episode, it's possible `@root_comment` was for
a podcast episode).

* remove unneeded (and soon to be incorrect spec)

No longer want or need to test for the case where root comment is nil
and so is commentable. This was an exploratory spec (scaffolding) and
can be removed.

* Undo nil safety changes to comments index

and fix typo in comments spec
2021-11-11 12:56:14 -06:00
..
admin Fix: cannot unpin articles using checkbox (#15090) 2021-11-02 13:50:56 -04:00
api/v0 Auto register Forems on Discover (#14962) 2021-10-06 10:51:15 -04:00
articles Clean up feed-related code (#14707) 2021-09-17 09:23:32 +07: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
oauth Replace peform_enqueued_jobs with sidekiq_perform_enqueued_jobs in specs (#6454) 2020-03-04 11:39:48 -07:00
podcasts views/podcasts, views/podcast_episodes i18n (#15020) 2021-10-25 14:32:51 +01:00
shared_examples nothing to see here....except maybe reverting a push to master (#8308) 2020-06-05 20:34:21 -05:00
stories views/stories, views/layouts and other homepage i18n (#15083) 2021-11-10 07:38:43 -06:00
user Translate pinned (#15008) 2021-10-12 08:24:29 -04: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 Fix access token revoking (#3131) 2019-06-11 15:53:58 -04:00
article_approvals_spec.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
async_info_spec.rb Creator Onboarding: Creator Setup View (#14728) 2021-11-01 15:50:08 -04:00
badges_spec.rb Add badges index page. (#4236) 2019-10-06 17:34:52 -04:00
chat_channel_memberships_spec.rb Optimization:Dont Notify of Channel Leavings (#10518) 2020-10-02 16:19:54 +02:00
chat_channels_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
collections_spec.rb Show correct number in series truncation. (#13799) 2021-05-24 15:47:06 -06:00
comments_create_spec.rb When a user is blocked from commenting on an article, show correct error message (#15009) 2021-10-14 07:42:08 -06:00
comments_destroy_spec.rb Rubocop: Enable and fix Style/StringConcatenation (#9844) 2020-08-18 14:50:15 +02:00
comments_spec.rb handle deleted article's comments page with a 404 response (#15351) 2021-11-11 12:56:14 -06: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 Fix Analytics Dashboard Page missing "Back To Dashboard" button (#14310) 2021-08-11 12:57:01 +02:00
devices_spec.rb Have specs run without Redis and refactor ConsumerApp and Device (#13647) 2021-05-07 08:03:16 +02:00
discussion_locks_spec.rb Update DiscussionLocksController (#14351) 2021-07-27 14:42:14 +02:00
display_ad_events_spec.rb [15-minute fix] Add ThrottledCall to DisplayAdEventsController (#12924) 2021-03-09 09:06:11 +07:00
editor_spec.rb RFC 50: Remove hardcoded paths and use path_helpers instead (in the specs) (#13549) 2021-04-28 21:32:51 +02: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 Zappat0n/add rate limit model everywhere 11500 (#14609) 2021-09-23 10:49:19 +01:00
followings_spec.rb [deploy] Reintroduce sticky_nav changes (ab81f36 & 7f92855) (#10263) 2020-09-09 15:33:13 -04:00
follows_bulk_show_spec.rb [deploy] Bulk Fetch Follow Button Data for Users (#7676) 2020-05-08 13:58:58 -05: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 Split Settings::Authentication from SiteConfig (#13095) 2021-04-12 09:41:09 +02: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 [deploy] Decouple Twitter authentication from fetching tweets (#7920) 2020-05-19 18:05:41 -04:00
liquid_tags_request_spec.rb [deploy] Add LiquidTagsController (#10241) 2020-09-08 12:07:33 -04:00
listings_spec.rb Zappat0n/add rate limit model everywhere 11500 (#14609) 2021-09-23 10:49:19 +01:00
messages_spec.rb [deploy] Optimization/Bug Fix:Only Send Mentioned User Notifications, not all for every message (#9493) 2020-07-27 11:16:41 -05:00
moderations_spec.rb Rename User.dev_account to User.staff_account (#14321) 2021-07-26 10:46:26 -04: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 [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -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 I18n copy on Tags index page (#14891) 2021-10-08 10:21:06 +07: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 Fix rubocop detected offenses (#4552) 2019-10-24 11:53:03 -04: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 [deploy] Finalize deleting user associations (#5624) 2020-01-23 11:29:47 -05:00
profile_preview_cards_spec.rb Profile generalization cleanup phase 2 (#14555) 2021-08-27 09:17:26 +07:00
profiles_request_spec.rb Drop profile columns from user (#10707) 2020-12-03 08:14:38 +07:00
pusher_auth_spec.rb Remove commented code and tests (#3989) [ci skip] 2019-09-09 14:51:02 -04:00
rating_votes_spec.rb Add experience level averaging to articles (#1922) 2019-02-28 08:17:29 -08:00
reactions_spec.rb Don't try to create invalid RatingVote (#14706) 2021-09-14 09:41:59 +07: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 Fix profile image bug on email registration (#14991) 2021-10-08 14:30:57 -04:00
response_templates_spec.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
search_spec.rb Cleanup search classes and serializers (#13645) 2021-05-05 09:20:59 -04: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 Rubocop fixes (#14868) 2021-09-30 13:22:09 -04:00
stories_show_spec.rb Article layout (#14753) 2021-09-30 19:08:06 +02:00
stripe_active_cards_spec.rb Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -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 Update TagsController#index query (#15202) 2021-10-27 08:17:53 -04:00
universal_links_spec.rb Add exclusion to AASA supported paths (#14593) 2021-08-26 10:17:39 -06:00
user_blocks_spec.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
user_subscriptions_spec.rb Improve error message of User Subscriptions (#11689) 2020-12-01 08:41:49 -08:00
users_onboarding_spec.rb Profile generalization cleanup phase 2 (#14555) 2021-08-27 09:17:26 +07:00
video_states_update_spec.rb Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
videos_spec.rb Videos UI update (#15177) 2021-10-28 09:34:44 +02:00