docbrown/app
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
..
assets Provide "Help" on the Creator Onboarding Setup Page (#15308) 2021-11-11 08:42:56 -07:00
black_box Make Rubocop happy again (#14729) 2021-09-14 09:15:01 -05:00
components/admin/users Small change to make the tools section of member details mobile friendly. (#15159) 2021-10-22 18:47:20 +02:00
controllers handle deleted article's comments page with a 404 response (#15351) 2021-11-11 12:56:14 -06:00
decorators Theming cleanup (#15237) 2021-11-09 10:11:55 -05:00
errors When a user is blocked from commenting on an article, show correct error message (#15009) 2021-10-14 07:42:08 -06:00
helpers Bug Fix: Following an organization from article's sidebar creates an incorrect follow record (#15093) 2021-11-05 12:40:20 -04:00
javascript fix some prop type errors on the home page (#15314) 2021-11-10 13:47:55 +00:00
lib Cooldown Project: Introduce StringAttributeCleaner (#15281) 2021-11-06 14:58:14 +07:00
liquid_tags Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
mailers Re-add dynamic delivery_method for ApplicationMailer (#13994) 2021-06-23 15:17:27 -04:00
models Theming cleanup (#15237) 2021-11-09 10:11:55 -05:00
policies When a user is blocked from commenting on an article, show correct error message (#15009) 2021-10-14 07:42:08 -06:00
queries Adds validations to avoid creating unnecessary PNs (#14621) 2021-08-31 15:00:30 -06:00
refinements Drop profile columns from user (#10707) 2020-12-03 08:14:38 +07:00
sanitizers Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
serializers Remove duplicated work display from header / profile work (#14210) 2021-07-30 12:28:40 +02:00
services Skip badge awards for spam accounts (#15344) 2021-11-10 10:48:01 -06:00
uploaders ✂✂✂ Remove events (#15062) 2021-10-15 09:31:08 -04:00
validators Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
view_objects Upgrade to Ruby 3.0.2 (#12103) 2021-08-25 14:26:33 -04:00
views Provide "Help" on the Creator Onboarding Setup Page (#15308) 2021-11-11 08:42:56 -07:00
workers Add PGHero for more insights into the DB (#15073) 2021-11-05 12:25:02 -04:00