# encoding: utf-8
# author: Mesaguy

describe file('/opt/prometheus/exporters/cloudwatch_exporter/active') do
  it { should be_symlink }
  its('mode') { should cmp '0755' }
  its('owner') { should eq 'root' }
  its('group') { should eq 'prometheus' }
end

describe file('/opt/prometheus/exporters/cloudwatch_exporter/active/cloudwatch_exporter.jar') do
  it { should be_file }
  it { should be_executable }
  its('mode') { should cmp '0755' }
  its('owner') { should eq 'root' }
  its('group') { should eq 'prometheus' }
end

if command('java').exist?
  describe service('cloudwatch_exporter') do
      it { should be_enabled }
      it { should be_installed }
      it { should be_running }
  end

  describe processes(Regexp.new("java .*cloudwatch_exporter.jar.*/opt/prometheus/etc/cloudwatch_exporter.yml$")) do
    it { should exist }
    its('entries.length') { should eq 1 }
    its('users') { should include 'prometheus' }
  end

  describe port(9106) do
    it { should be_listening }
  end

  describe http('http://127.0.0.1:9106/metrics') do
    its('status') { should cmp 200 }
    its('body') { should match /cloudwatch_exporter_scrape_duration_seconds/ }
  end
end
