Sha256: a72c9dcccd0023d9ee211e99d88ff74d12394186e1ab730256a61d5725221e0b

Contents?: true

Size: 1.67 KB

Versions: 10

Compression:

Stored size: 1.67 KB

Contents

require 'chake/node'
require 'chake/config_manager'
require 'chake/config_manager/shell'

describe Chake::ConfigManager::Shell do |_c|
  let(:node) do
    Chake::Node.new('foobar').tap do |n|
      allow(n).to receive(:path).and_return(nil)
    end
  end
  it 'accepts node with explicit config_manager in data' do
    node.data['config_manager'] = 'shell'
    expect(Chake::ConfigManager.get(node)).to be_a(Chake::ConfigManager::Shell)
  end
  it 'accepts node with `shell` in data' do
    node.data['shell'] = ['date']
    expect(Chake::ConfigManager.get(node)).to be_a(Chake::ConfigManager::Shell)
  end

  let(:subject) { Chake::ConfigManager::Shell.new(node) }

  it 'calls all shell commands on converge' do
    node.data['shell'] = %w[date true]
    expect(node).to receive(:run_as_root).with("sh -xec 'date && true'")
    subject.converge
  end

  it 'changes to node path to run commands' do
    node.data['shell'] = %w[true]
    allow(node).to receive(:path).and_return('/foo')
    expect(node).to receive(:run_as_root).with("sh -xec 'cd /foo && true'")
    subject.converge
  end

  it 'calls given shell command on apply' do
    node.data['shell'] = %w[date true]
    expect(node).to receive(:run_as_root).with("sh -xec 'reboot'")
    subject.apply('reboot')
  end

  it 'hides output on converge in silent mode' do
    node.data['shell'] = ['date']
    node.silent = true
    expect(node).to receive(:run_as_root).with("sh -ec 'date' >/dev/null")
    subject.converge
  end

  it 'hides output on apply in silent mode' do
    node.data['shell'] = ['date']
    node.silent = true
    expect(node).to receive(:run_as_root).with("sh -ec 'reboot' >/dev/null")
    subject.apply('reboot')
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
chake-0.92 spec/chake/config_manager/shell_spec.rb
chake-0.91 spec/chake/config_manager/shell_spec.rb
chake-0.90.3 spec/chake/config_manager/shell_spec.rb
chake-0.90.2 spec/chake/config_manager/shell_spec.rb
chake-0.90.1 spec/chake/config_manager/shell_spec.rb
chake-0.90 spec/chake/config_manager/shell_spec.rb
chake-0.82 spec/chake/config_manager/shell_spec.rb
chake-0.81.1 spec/chake/config_manager/shell_spec.rb
chake-0.81 spec/chake/config_manager/shell_spec.rb
chake-0.80 spec/chake/config_manager/shell_spec.rb