Sha256: f4f4cc90edcfc1067b48fe5a4a16d21eeb5638260198b3da3e07fb9324b7ea87

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'rspec/expectations'

RSpec::Matchers.define :be_success_result do
  match do |result|
    result.success?
  end

  chain :with_status do |status|
    @status = status
  end

  failure_message do |result|
    return 'expected command to succeed' if @status.nil?
    return "expected command to succeed with status :#{@status}, but got :#{result.status}"
  end

  failure_message_when_negated do |result|
    return "expected command not to have status :#{@status}" if @status.present? && result.status == @status
    return 'expected command to fail'
  end
end

RSpec::Matchers.define :be_failed_result do
  match do |result|
    return result.failure? if @status.nil?
    return result.failure? && (result.status == @status)
  end

  chain :with_status do |status|
    @status = status
  end

  failure_message do |result|
    return 'expected command to fail' if @status.nil?
    return "expected command to fail with status :#{@status}, but got :#{result.status}"
  end

  failure_message_when_negated do |result|
    return "expected command not to have status :#{@status}" if @status.present? && result.status == @status
    return 'expected command to succeed'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slayer-0.4.0.beta2 lib/slayer/rspec.rb