Class: Dommy::Rails::RSpec::Matchers::HaveTurboStream

Inherits:
Object
  • Object
show all
Defined in:
lib/dommy/rails/rspec/matchers.rb

Instance Method Summary collapse

Constructor Details

#initialize(action:, target:) ⇒ HaveTurboStream

Returns a new instance of HaveTurboStream.



448
449
450
451
# File 'lib/dommy/rails/rspec/matchers.rb', line 448

def initialize(action:, target:)
  @action = action
  @target = target
end

Instance Method Details

#descriptionObject



463
464
465
# File 'lib/dommy/rails/rspec/matchers.rb', line 463

def description
  "have turbo-stream action=#{@action.inspect} target=#{@target.inspect}"
end

#does_not_match?(actual) ⇒ Boolean

Returns:

  • (Boolean)


459
460
461
# File 'lib/dommy/rails/rspec/matchers.rb', line 459

def does_not_match?(actual)
  !matches?(actual)
end

#failure_messageObject



467
468
469
# File 'lib/dommy/rails/rspec/matchers.rb', line 467

def failure_message
  "expected to find turbo-stream action=#{@action.inspect} target=#{@target.inspect}"
end

#failure_message_when_negatedObject



471
472
473
# File 'lib/dommy/rails/rspec/matchers.rb', line 471

def failure_message_when_negated
  "expected not to find turbo-stream action=#{@action.inspect} target=#{@target.inspect}"
end

#matches?(actual, &block) ⇒ Boolean

Returns:

  • (Boolean)


453
454
455
456
457
# File 'lib/dommy/rails/rspec/matchers.rb', line 453

def matches?(actual, &block)
  stream = Dommy::Rails::TurboStream.find(MatchTarget.body(actual), action: @action, target: @target)
  block.call(Dommy::Rails::TurboStream.fragment_document(stream)) if stream && block
  !stream.nil?
end