Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.7.0 - 2026-06-23
Added
- Full YARD documentation (
@param,@return,@example) on all public methods and classes docs/cookbook.mdwith common patterns: request specs, system specs, multi-controller, scoped matching, typed values, outlets.yardoptsconfiguration file
0.6.0 - 2026-06-23
Added
- Multi-controller assertion:
have_stimulus_controller("hello", "clipboard")asserts multiple controllers on a single element - Scoped matching via
.within(selector)on all matchers (request-spec and Capybara)
0.5.0 - 2026-06-23
Added
- Capybara
have_stimulus_classmatcher (existence and equality modes) for system/feature specs - Capybara
have_stimulus_outletmatcher (existence and selector modes) for system/feature specs
0.4.0 - 2026-06-22
Added
have_stimulus_outlet(controller, outlet)matcher — assertsdata-{controller}-{outlet}-outletexistshave_stimulus_outlet(controller, outlet, selector)matcher — asserts attribute equals the CSS selector value- Capybara matchers:
have_stimulus_controller,have_stimulus_action,have_stimulus_targetfor system/feature specs - Auto-include
StimulusSpec::Capybara::Matchersintotype: :systemandtype: :feature(gated oncapybara) - Capybara
have_stimulus_valuematcher (existence and equality modes) - Enhanced failure messages: controller mismatch lists all found controllers, value/class/outlet mismatch shows actual vs expected with element HTML, all matchers include relevant HTML snippets
0.3.0 - 2026-06-22
Added
have_stimulus_value(controller, name)matcher — assertsdata-{controller}-{name}-valueexistshave_stimulus_value(controller, name, expected)matcher — asserts attribute equals expected valuehave_stimulus_class(controller, name)matcher — assertsdata-{controller}-{name}-classexistshave_stimulus_class(controller, name, expected)matcher — asserts attribute equals expected class
0.1.0 - 2026-06-22
Added
StimulusSpec::Configurationclass withauto_includeattribute (defaulttrue)StimulusSpec.configure,.configuration, and.reset_configuration!class methodsStimulusSpec.install_rspec_integration— auto-includes matchers intotype: :request,:controller,:system, and:featureexample groups (gated onstimulus-rails)RSpec.configurehook at load time (guarded bydefined?(RSpec))have_stimulus_controller(name)matcher — asserts[data-controller~="name"]via Nokogirihave_stimulus_action(descriptor)matcher — full descriptor (~=) and shorthand without event (*=)have_stimulus_target(controller, target)matcher — asserts[data-{controller}-target~="target"]