Sha256: 3d9e97d2d239d065b9722844ed8e1928f3ad928b26d5c7abd4bde0266054694c

Contents?: true

Size: 690 Bytes

Versions: 6

Compression:

Stored size: 690 Bytes

Contents

# frozen_string_literal: true

RSpec::Matchers.define :print_warning do |message|
  def supports_block_expectations?
    true
  end

  match do |block|
    stderr = fake_stderr(&block)
    message ? stderr.include?(message) : !stderr.empty?
  end

  description do
    "write #{message && "\"#{message}\"" || 'anything'} to standard error"
  end

  failure_message do
    "expected to #{description}"
  end

  failure_message_when_negated do
    "expected not to #{description}"
  end

  # Fake STDERR and return a string written to it.
  def fake_stderr
    original_stderr = $stderr
    $stderr = StringIO.new
    yield
    $stderr.string
  ensure
    $stderr = original_stderr
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
anyway_config-1.4.4 spec/support/print_warning_matcher.rb
anyway_config-1.4.3 spec/support/print_warning_matcher.rb
anyway_config-1.4.2 spec/support/print_warning_matcher.rb
anyway_config-1.4.1 spec/support/print_warning_matcher.rb
anyway_config-1.4.0 spec/support/print_warning_matcher.rb
anyway_config-1.3.1 spec/support/print_warning_matcher.rb