RSpec examples can get quite long, especially in feature specs. This makes them hard to read & understand. Also, when executing...
etag { flash.to_h } etag { I18n.locale } (could be left out if all URLs contain a locale fragment, but also doesn...
When RSpecs runs the first feature spec, you may see log output like this: Capybara starting Puma... * Version 6.5.0, codename...
ActiveRecord computes table names of model classes, and results are usually just like you'd expect. Adding a prefix for...
ChromeDriver 135 started following the W3C spec more closely, which broke testing beforeunload confirmations again. To get working confirmations in...
As it's quite hard to use a screen reader when you have never done so before, I added a...
Currently we often use geordi to run cucumber and rspec tests. Geordi takes care of installing a matching chromedriver for...
In Rails 7.2. the feature ActiveRecord.after_all_transactions_commit was added, for code that may run either inside or outside...
In Rails 7.2 the new default for config.action_dispatch.show_exceptions is rescuable. :rescuable: It will show a Rails error page in...
Frontend performance and user experience are orthogonal to feature development. If care is not taken, adding features usually degrades frontend...
Modern CSS offers the field-sizing property to allow elements to automatically adjust size (width and/or height) to fit their...
When you repeat complex assertions in your tests multiple times, it might be a good idea to extract a custom...
Added additional rules of thumb highlighting common causes of test flakiness.
Unpoly 3.11.0 is a big release, shipping many features and quality-of-life improvements requested by the community. Highlights include...
You can report CSP violations to Sentry. Within config/initializers/content_security_policy.rb: Rails.application.configure do config.content_security_policy do |policy| # Settings for the policy...
If you want to build a small CLI application, that supports more advanced inputs than gets, I recommend using the...
The DB schema is the most important source of truth for your application and should be very self-explanatory. If...
We usually ship applications that self-host webfonts to comply with GDPR. Many popular web fonts are available as NPM...
Even if you don't make any beginner mistakes like N+1 queries or missing DB indices, some requests can...
The linked article shows how to configure omniauth-multi-provider to support multiple SAML identity providers for a single Rails...
tl;dr Set profile.password_manager_leak_detection to false in your Selenium Chrome options to disable password leak detection and...
Our projects with parallel_tests and cucumber used to have a patched failure logger as the one from parallel_tests...
It can be hard to understand what causes a browser scroll smoothly or instantly. CSS, JavaScript and the browser settings...
Say you wrap your index view in a form to apply different filters like pagination or a search query. On...