Sha256: dac17dc36cfad64adedf338fdb2f3cd1a2bbf1e20e52943a1909e833e89da945

Contents?: true

Size: 1.57 KB

Versions: 5

Compression:

Stored size: 1.57 KB

Contents

RSpec::Matchers.define :have_param do |name|

  description do
    "have a param named #{name}"
  end

  chain :with_type do |type|
    @type = type
  end

  chain :with_value do |value|
    @value = value
  end

  chain :with_options do |options|
    @options = options
  end

  match do |report|
    param = report.params.select{ |param| param.name == name }.first

    @has_param = !param.nil?
    @has_param = ( param.type == @type ) if @type && @has_param
    @has_param = ( param.value == @value ) if @value && @has_param
    @has_param = ( param.options == @options ) if @options && @has_param

    @has_param
  end

  failure_message do |report|
    message = "expected that report would have a param named #{name}"

    param = report.params.select{ |param| param.name == name }.first
    message << " with type #{@type} but got #{param.type}" if param && param.type != @type
    message << " with value #{@value} but got #{param.value}" if param && param.value != @value
    message << " with options #{@options} but got #{param.options}" if param && param.options != @options

    message
  end

  failure_message_when_negated do |report|
    message = "expected that report would not have a param named #{name}"

    param = report.params.select{ |param| param.name == name }.first
    message << " with type #{@type} but got #{param.type}" if param && param.type != @type
    message << " with value #{@value} but got #{param.value}" if param && param.value != @value
    message << " with options #{@options} but got #{param.options}" if param && param.options != @options

    message
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
report_cat-5.0.3 lib/report_cat/matchers/have_param.rb
report_cat-5.0.2 lib/report_cat/matchers/have_param.rb
report_cat-5.0.1 lib/report_cat/matchers/have_param.rb
report_cat-5.0.0 lib/report_cat/matchers/have_param.rb
report_cat-0.2.0 lib/report_cat/matchers/have_param.rb