Sha256: b18e53e92a059401dfc63a11931a3531fc4ddd88ac62a9369b8f97f04f51c8ef

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

# @!method have_exit_status(status)
#   This matchers checks if <command> has exit status <status>
#
#   @param [Integer] status
#     The value of the exit status
#
#   @return [TrueClass, FalseClass] The result
#
#     false:
#     * if command does not have exit status
#     true:
#     * if command has exit status
#
#   @example Use matcher
#
#     RSpec.describe do
#       it { expect(last_command).to have_exit_status(0) }
#     end
RSpec::Matchers.define :have_exit_status do |expected|
  match do |actual|
    @old_actual = actual

    @announcer ||= Aruba::Announcer.new(
      self,
      :stdout => @announce_stdout,
      :stderr => @announce_stderr,
      :dir    => @announce_dir,
      :cmd    => @announce_cmd,
      :env    => @announce_env
    )

    @old_actual.stop(@announcer) unless @old_actual.stopped?
    @actual = actual.exit_status

    next false unless @old_actual.respond_to? :exit_status

    values_match? expected, @actual
  end

  failure_message do |actual|
    format(%(expected that command "%s" has exit status of "%s", but has "%s".), @old_actual.commandline, expected.to_s, actual.to_s)
  end

  failure_message_when_negated do |actual|
    format(%(expected that command "%s" does not have exit status of "%s", but has "%s".), @old_actual.commandline, expected.to_s, actual.to_s)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
aruba-0.9.0.pre lib/aruba/matchers/command/have_exit_status.rb
aruba-0.8.1 lib/aruba/matchers/command/have_exit_status.rb
aruba-0.8.0 lib/aruba/matchers/command/have_exit_status.rb
aruba-0.8.0.pre3 lib/aruba/matchers/command/have_exit_status.rb
aruba-0.8.0.pre2 lib/aruba/matchers/command/have_exit_status.rb
aruba-0.8.0.pre lib/aruba/matchers/command/have_exit_status.rb