summaryrefslogtreecommitdiff
path: root/spec/mixlib/shellout/helper_spec.rb
blob: 8c1136dfa2a8f0894c879595a913422fc68a28eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require "spec_helper"
require "mixlib/shellout/helper"
require "logger"

# to use this helper you need to either:
#  1. use mixlib-log which has a trace level
#  2. monkeypatch a trace level into ruby's logger like this
#  3. override the __io_for_live_stream method
#
class Logger
  module Severity; TRACE = -1; end
  def trace(progname = nil, &block); add(TRACE, nil, progname, &block); end

  def trace?; @level <= TRACE; end
end

describe Mixlib::ShellOut::Helper, ruby: ">= 2.3" do
  class TestClass
    include Mixlib::ShellOut::Helper

    # this is a hash-like object
    def __config
      {}
    end

    # this is a train transport connection or nil
    def __transport_connection
      nil
    end

    # this is a logger-like object
    def __log
      Logger.new(IO::NULL)
    end
  end

  let(:test_class) { TestClass.new }

  it "works to run a trivial ruby command" do
    expect(test_class.shell_out("ruby -e 'exit 0'")).to be_kind_of(Mixlib::ShellOut)
  end
end