Can I Email: Check what styling email clients support
Email client styling support is fragmented, so feature checks help avoid unsupported CSS but cannot replace real-client rendering tests.
JustinFrench.com: Learn how to test your code
Eventually you’ll forget that you used to spend hours testing your code in a browser, and start complaining that your automated tests are taking minutes to run! You’ll have intense debates with co-workers about what to test and how to test it properly. You’ll start writing the test first to expose the bug or missing feature, then write the code required to pass the test.
Jasmine: Fixing common errors during initialization
Jasmine boot failures can stem from browser/module detection issues, causing jasmineRequire or getJasmineRequireObj() errors in Webpacker and esbuild setups.
Check if an object is an ActiveRecord scope
Checking for an ActiveRecord scope with is_a?(ActiveRecord::NamedScope::Scope) breaks in Rails 3 and misses unscoped model classes. respond_to?(:scoped) is a broader check.
Maintaining custom application tasks in Rails
Large Rails projects benefit from keeping application tasks slim, separating the executable wrapper from the business code, and testing both rake tasks and scripts.
Using Capybara finder methods with arbitrary matching conditions
Capybara matchers and finders can take a Ruby block for extra DOM conditions when built-in options are not enough. Script calls inside filter blocks need a temporary wait time to avoid Selenium timeouts.
How to test inside iframes with cucumber / capybara
Cucumber and Capybara ignore iframes by default, so tests must switch into the frame to interact with its content. Frame-aware step definitions can reduce repeated setup.
rspec_candy is now a gem
rspec_candy packages reusable RSpec helpers as a gem, making setup and updates easier for specs that need shared test utilities.
Regular Expressions - Cheat Sheet
Regular-expression syntax for matching characters, boundaries, alternation, quantifiers, look-arounds, and Ruby modifiers. Useful for writing and debugging patterns safely.
VCR fails if the same request is triggered multiple times
VCR records each request only once, so replaying repeated identical calls can fail unless allow_playback_repeats is enabled.
Scenario outlines in Cucumber
Template-based examples reduce repetition in behavior-driven tests and make repetitive cases easier to maintain.
Spreewald version 0.9.4 released
Fixes for flaky browser tests in Spreewald 0.9.4, including a resolved “I click on ...” step and broader Selenium retry handling.
Making Little Classes out of Big Ones
A too-large class is harder to understand, test, and change. Several refactoring approaches break it into smaller responsibilities.
Slack integration for deployments via Capistrano
Send deployment notifications from Capistrano to Slack channels using slackistrano and incoming webhooks, with customizable message formatting.
Syn - a Standalone Synthetic Event Library
Synthetic user events for typing, clicking, moving, and dragging provide realistic interaction handling for tests and automation.
How to find out the currently focused DOM element with JavaScript
document.activeElement returns the currently focused DOM element and is useful for checking focus state in JavaScript or Selenium tests.
Use Capybara on any HTML fragment or page
Capybara matchers can be applied to standalone HTML fragments or strings, not only full pages, making fragment assertions easier in test suites.
Prawn: How to add form fields to a PDF
PDF form fields in Prawn require manual AcroForm objects and widget annotations; viewers can render text inputs when appearance data and page annotations are set correctly.
RSpec: Running examples by name (or running a single shared example)
Shared RSpec examples can be rerun by --example substring match or example ID when rspec file:line cannot target them directly.
Error handling in DOM event listeners
DOM event handler exceptions are swallowed, so later listeners and dispatchEvent() continue running. Uncaught errors still reach the browser log and window error event.
Configuring Git with .gitconfig
Simple Git configuration for new developers: aliases, rebase defaults, diff tools, and GitLab push shortcuts for a cleaner workflow.
Limitations you should be aware of when Internet Explorer 9 parses CSS files
Internet Explorer 9 can fail on large stylesheets because of hard parser limits: file count, selector count, and nested @import depth.
patiently is now a gem
patiently helpers are now packaged as the patiently gem, with configurable retries and timeouts for feature and system specs.
Spec correct routing of custom URLs
When you roll custom URLs with hacks like routing-filter, you can put a spec like this into spec/routing/routing_spec.rb: