Module: StimulusSpec

Defined in:
lib/stimulus_spec.rb,
lib/stimulus_spec/version.rb,
lib/stimulus_spec/matchers.rb,
lib/stimulus_spec/configuration.rb,
lib/stimulus_spec/capybara/matchers.rb,
lib/stimulus_spec/matchers/have_stimulus_class.rb,
lib/stimulus_spec/matchers/have_stimulus_value.rb,
lib/stimulus_spec/matchers/have_stimulus_action.rb,
lib/stimulus_spec/matchers/have_stimulus_outlet.rb,
lib/stimulus_spec/matchers/have_stimulus_target.rb,
lib/stimulus_spec/matchers/have_stimulus_controller.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_class.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_value.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_action.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_outlet.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_target.rb,
lib/stimulus_spec/capybara/matchers/have_stimulus_controller.rb

Overview

RSpec matchers for testing Stimulus controller wiring in Rails applications.

Provides matchers for asserting +data-controller+, +data-action+, +data--target+, +data---value+, +data---class+, and +data--*-outlet+ attributes in rendered HTML and Capybara pages.

Examples:

Auto-included in Rails with stimulus-rails

RSpec.describe "Search", type: :request do
  it "wires up the controller" do
    get search_path
    expect(response).to have_stimulus_controller("search")
  end
end

Defined Under Namespace

Modules: Capybara, Matchers Classes: Configuration, Error

Constant Summary collapse

VERSION =
"0.7.0"

Class Method Summary collapse

Class Method Details

.configurationConfiguration

Returns the current configuration instance.

Returns:



25
26
27
# File 'lib/stimulus_spec.rb', line 25

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Yields the configuration for modification.

Yield Parameters:



33
34
35
# File 'lib/stimulus_spec.rb', line 33

def self.configure
  yield configuration
end

.install_rspec_integration(config) ⇒ void

This method returns an undefined value.

Includes matchers into RSpec example groups when stimulus-rails is present.

Parameters:

  • config (RSpec::Core::Configuration)


48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/stimulus_spec.rb', line 48

def self.install_rspec_integration(config)
  return unless Gem.loaded_specs.key?("stimulus-rails")
  return unless configuration.auto_include

  %i[request controller].each do |type|
    config.include StimulusSpec::Matchers, type: type
  end

  return unless Gem.loaded_specs.key?("capybara")

  %i[system feature].each do |type|
    config.include StimulusSpec::Capybara::Matchers, type: type
  end
end

.reset_configuration!Configuration

Replaces the current configuration with a fresh instance.

Returns:



40
41
42
# File 'lib/stimulus_spec.rb', line 40

def self.reset_configuration!
  @configuration = Configuration.new
end