Module: Phlex
- Defined in:
- lib/phlex/reactive/test_helpers/matchers.rb,
lib/phlex/reactive.rb,
lib/phlex/reactive/js.rb,
lib/phlex/reactive/mcp.rb,
lib/phlex/reactive/defer.rb,
lib/phlex/reactive/reply.rb,
lib/phlex/reactive/doctor.rb,
lib/phlex/reactive/engine.rb,
lib/phlex/reactive/stream.rb,
lib/phlex/reactive/version.rb,
lib/phlex/reactive/response.rb,
lib/phlex/reactive/component.rb,
lib/phlex/reactive/inspector.rb,
lib/phlex/reactive/mcp/runner.rb,
lib/phlex/reactive/mcp/server.rb,
lib/phlex/reactive/streamable.rb,
lib/phlex/reactive/param_schema.rb,
lib/phlex/reactive/test_helpers.rb,
lib/phlex/reactive/authorization.rb,
lib/phlex/reactive/component/dsl.rb,
lib/phlex/reactive/mcp/base_tool.rb,
lib/phlex/reactive/component/lazy.rb,
lib/phlex/reactive/log_subscriber.rb,
lib/phlex/reactive/client_bindings.rb,
lib/phlex/reactive/show_conditions.rb,
lib/phlex/reactive/inspector/report.rb,
lib/phlex/reactive/component/helpers.rb,
lib/phlex/reactive/component/identity.rb,
lib/phlex/reactive/component/registry.rb,
lib/phlex/reactive/deferred_render_job.rb,
lib/phlex/reactive/mcp/tools/find_tool.rb,
lib/phlex/reactive/mcp/tools/config_tool.rb,
lib/phlex/reactive/mcp/tools/doctor_tool.rb,
lib/phlex/reactive/mcp/tools/actions_tool.rb,
lib/phlex/reactive/mcp/tools/components_tool.rb,
app/controllers/phlex/reactive/actions_controller.rb,
lib/generators/phlex/reactive/claude/claude_generator.rb,
lib/generators/phlex/reactive/install/install_generator.rb,
lib/generators/phlex/reactive/component/component_generator.rb
Overview
RSpec matchers for reactive action Results (issue #110). Loaded lazily by Phlex::Reactive::TestHelpers only when RSpec is present, so the gem never hard depends on RSpec — a Minitest app mixes in TestHelpers and simply asserts on Result predicates (result.replace?, result.streams) directly.
expect(run_reactive(component, :toggle)).to have_reactive_replace(component)
expect(run_reactive(component, :archive)).to have_reactive_remove(component)
expect(run_reactive(component, :increment)).to have_reactive_token_for(component)
Each matcher accepts a component INSTANCE or a bare DOM id String, and prints a diff worth reading on failure (the stream actions/targets it actually saw).
Style/ItBlockParameter is disabled FILE-WIDE on purpose: in RSpec::Matchers
.define, the do |arg| param is the EXPECTED value and match do |actual| the
MATCHED value — two distinct objects. Collapsing either to the implicit it
(as the cop's autocorrect does) conflates them and silently guts the matcher.
rubocop:disable Style/ItBlockParameter
Defined Under Namespace
Modules: Reactive