Up until Chrome 120, scrollbars could only be styled using the various -webkit-scrollbar-* pseudo elements, e.g. to make the...
I recently noticed a new kind of flaky tests on the slow free tier GitHub Action runners: Integration tests were...
Any form fields where users enter numbers should be an . Numeric inputs have several benefits over : On mobile or tablet...
Usually our code lives on GitLab, therefore our documentation for CI testing is extensive in this environment. If you are...
tl;dr We recommend configuring Selenium's unhandled prompt behavior to { default: 'ignore' }. When running tests in a real browser...
To show your key inputs on screen, e.g. for a screencast or screen sharing, you can use screenkey.
A Rails script lives in lib/scripts and is run with bin/rails runner lib/scripts/.... They are a simple tool to perform...
I, [2024-01-21T06:22:17.484221 #2698200] INFO -- : [4cdad7a4-8617-4bc9-84e9-c40364eea2e4] test
There are a few tools to combat the dreaded n+1 queries. The bullet gem notifies you of missing eager...
Ruby methods which load from a Yaml file, like YAML.safe_load or YAML.safe_load_file, support passing freeze: true to...
Your development server is usually running on an insecure HTTP connection which is perfectly fine for development.
Here are some hints on best practices to maintain your tasks in larger projects. Rake Tasks vs. Scripts
You can use the config.x configuration in combination with config_for to configure global settings for your Rails 4.2+ application...
You can ignore certain commits when using git blame with the --ignore-revs-file option. This is handy to ignore...
Getting an entire test suite green can be a tedious task which involves frequent switches between the CLI that is...
This Capistrano task runs a command on all servers. bundle exec cap production app:run cmd='zgrep -P "..." RAILS_ROOT/log/production.log...
In the Gitlab settings the flag Auto-cancel redundant pipelines is enabled by default. This auto-cancels pipelines with jobs...
A general overview about why and how we migrate can be found under Migrating from Elasticsearch to Opensearch
Getting CSS (and JS) live reloading to work in a esbuild / Rails project is a bit of a hassle, but...
tl;dr You can use ordered to ensure that messages are received in a specific order. Example expect(ClassA).to...
When you find similar groups of expect calls in your tests, you can improve readability by extracting the group into...
The sprintf method has a reference by name format option: sprintf("% d : % f", { :foo => 1, :bar => 2 }) # => 1 : 2.000000
Every modern Rails app should have a Content Security Policy enabled. Very compatible default The following "default" is a minimal...
While upgrading CarrierWave from version 0.11.x to 3.x, we encountered some very nasty fails. Below are the basic...