* Add 80 character linewrap
* Expand the contributing guide [ci skip]
This commit includes a couple of expansions on the contributing guide
including some notes concerning documentation and the code of conduct.
There are also some small mechanical fixes and a link or two was fixed.
* Action to request account deletion by email
* Confirmation page for user destroy
* Remove some of the old destroy user code
* System tests for user destroy
* Moved user destroy tokens to redis
* Change tests according to the new user destroy token storage (in redis)
* Added info about the link to user delete confirmation email
* Remove blank like from schema.rb
* Delete user destroy token on user delete
* Update confirm user destroy js
* Fix black-on-black etc. buttons and update social preview cards
* Change up font family details
* Fix org badges
* Adjust fonts for user name
* Add roboto to font stack
* Adjust gradiant
* Update readme to adopt expected markdown wrapping
In another commit (7d0aeee), we chose to lean on Prettier for
linewrapping markdown files at 80 characters. The reasoning is explained
in that commit message, but briefly: enforcing linewrapping in
documentation files makes the git history cleaner over time, allowing
more specific git blames and more context for people working on
documentation in the future.
This commit applies that same change to the README.
* Remove duplicated documentation [ci skip]
The information regarding installation is available at docs.dev.to,
maintaining that information here is duplication and very likely to fall
out of sync (for example, the readme is currently missing the Redis
dependency) with current information.
Therefore, it's probably better to just remove this stuff and link
directly to our more complete documentation so that people aren't
misled by potentially out of date information in the readme.
* Add ApplicationMetalController to relevant controllers
* Add request forgery protection to metal
* Remove logger call
* Add logger keyword and skip protect_from_forgery in test
* Uncomment main_image in test
* Add test sampler
* Use let! and let_it_be for article_spec.rb
* Regroup and restructure expectations and tests
* Move private methods in private
* Decrease the needed objects in .seo_boostable test
* Re-use the user
* Newlined
* Refactor raise_error(specific_error) expectation
The full RSpec warining is
```
WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives,
since literally any other error would cause the expectation to pass,
including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError),
meaning the code you are intending to test may not even get reached.
Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`.
```
* Refactor jsitor tests to test behaviour
As pointed out by @rhymes, the previous tests were not
testing actual behaviour. This is an attempt at improving the tests.
* Improve format and clarity of the docs [ci skip]
While this change produces a lot of git noise by enacting what seems
like an arbitrary linewrap on most of the files in the documentation it
will result in better version control and tracking of the changes in the
documentation.
For example, as it currently stands, if one was to make a
PR to move a comma in a sentence because each paragraph in most of the
files is on a single line, that small change would look in the git
history like the author had modified the entire paragraph. In reality,
this author just moved a comma.
This change also includes a significant number of modifications to the
more article-esque docs. Many of these docs were written in a sort of
stream-of-conciousness and aren't as easy to read as they could be.
Hopefully this is the first of several readability changes. If we could
get these docs to a more accessible reading level, we would probably see
an increase in contributions. :)
* Delegate markdown wrapping to Prettier
* Add linewrapping explanation in the docs [ci skip]
This test was commented out, but I don't see much information in the
commit message as to why. The Pull Request which this commit was merged
from seems to be lost as well.
This test does seem to pass when it's not commented out, but there must
have been a reason it was commented out.
That being said, the test isn't really *testing* much functionality.
Essentially, it just asserts that a page with the word "settings" on it
renders from several different approaches. This might be problematic
because a false positive would be quite easy.
In light of those things, it makes sense to me that this test should be
removed.
* Replace current_user.id with efficient_current_user_id in high-leverage areas
* Update name of efficient_current_user_id
* Replace user_signed_in? in pageviews
* Remove unneeded ?
* Reduce code duplication in onboarding tests
* Update variable names for consistency
* Improve test descriptions and format
* Refactor a useless test
This test was fairly pointless, but hopefully with this refactor it
could detect a regression? Although, I think it's really just testing
the that the Preact framework's state mechanism is working the way we
expect it to, but it might be worth leaving this test in.
* Add jext-axe package and introduce a11y testing
Automated a11y testing is NOT comprehensive. We cannot expect this to
even scratch the surface of potential a11y issues.
However, we can expect to find a percentage of issues that are currently
flying under the radar. Adopting some automation around a11y testing
also allows us to use CI to find a11y regressions -- which should be
really handy.
I've never really used Jest before, and Preact seems to make it a little
more complicated, but as far as I can tell, this is a decent way to add
at least some minor automated a11y testing.
* Add doc about automated a11y tests
* added tests to specs
* added view logic
* added controller/model functionality
* minor tweak to tagadjustment view
* adjusted mod view to reduce query
* added instance variables to controller
* show already adjusted tags in mod view
* removed unnecessary ifs from mods controller
* catch and display errors to tag adjustment forms
* update specs and refactor