Sha256: 1db6e1bba4f6f8ce18620f3469236d5aba0afe1cc05487661f418b9207b62a25
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true require 'open3' require 'timeout' describe 'bin/datadog_backup' do # Contract Or[nil,String] => self def run_bin(args = '', input = nil) status = nil output = '' cmd = "bin/datadog_backup #{args}" Open3.popen2e(cmd) do |i, oe, t| pid = t.pid if input i.puts input i.close end Timeout.timeout(4.0) do oe.each do |v| output += v end end rescue Timeout::Error LOGGER.error "Timing out #{t.inspect} after 4 second" Process.kill(15, pid) ensure status = t.value end [output, status] end required_vars = %w[ DD_API_KEY DD_APP_KEY ] env = {} required_vars.each do |v| env[v] = v.downcase end required_vars.map do |v| it "dies unless given ENV[#{v}]" do stub_const('ENV', env.dup.tap { |h| h.delete(v) }) _, status = run_bin('backup') expect(status).not_to be_success end end it 'supplies help' do stub_const('ENV', env) out_err, status = run_bin('--help') expect(out_err).to match(/Usage: DD_API_KEY=/) expect(status).to be_success end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
datadog_backup-3.0.0 | spec/datadog_backup_bin_spec.rb |
datadog_backup-3.0.0.alpha.2 | spec/datadog_backup_bin_spec.rb |
datadog_backup-3.0.0.alpha.1 | spec/datadog_backup_bin_spec.rb |