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...

tl;dr We recommend configuring Selenium's unhandled prompt behavior to { default: 'ignore' } with the monkey patch below.

github.com

There are a few tools to combat the dreaded n+1 queries. The bullet gem notifies you of missing eager...

Here are some hints on best practices to maintain your tasks in larger projects. Rake Tasks vs. Scripts

Getting an entire test suite green can be a tedious task which involves frequent switches between the CLI that is...

In the Gitlab settings the flag Auto-cancel redundant pipelines is enabled by default. This auto-cancels jobs that have...

makandra dev

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...

thegnar.com

View specs are a powerful tool to test several rendering paths by their cases instead of using a more costing...

rspec.info

Note Don't use reruns as a mean to work around flaky tests. You should always try to fix those...

Both knapsack and parallel_tests have the option to split groups by historic execution time. The required logs for this...

github.com

For my computer science bachelor's thesis I programmed and evaluated a CLI Test Case Prioritization (TCP) tool for makandra...

Rails offers several methods to manage three types of different cookies along with a session storage for cookies. These...

makandra dev

As we are slowly switching from Cucumber scenarios to RSpec feature specs, you might be tempted to write assertions like...

Debugging your integration tests, that run a headless Chrome inside a docker image, is tricky. In many cases you can...

Every Rails response has a default ETag header. In theory this would enable caching for multiple requests to the same...

Rails includes milliseconds in Time / DateTime objects when rendering them as JSON: JSON.parse(User.last.to_json)['created_at'] #=> "2001-01-01...

makandra dev

Timecop is a great gem to set the current time in tests. However, it is easy to introduce flakyness to...

makandra dev

In a Jasmine spec you want to spy on a function that is imported by the code under test. This...

In esbuild, you usually import other files using relative paths: import './some-related-module' import `../../utils/some-utility-module` import `../../../css/some-css.sass` This is totally fine...

github.com

ActiveType::Object inherits from ActiveRecod::Base and is designed to behave like an ActiveRecord Object, just without the database...

Here are a few common patterns that will probably lead to flaky specs. If you notice them in your specs...