inspec/test/unit/reporters/automate_test.rb
Jerry Aldrich 20776b363d Add support for multiple descriptions for controls (#3424)
* Add support for multiple descriptions for controls

This adds the ability to specify multiple descriptions in controls.

Example:

```ruby
control 'my-control' do
  impact 1.0
  title 'My control'
  desc 'A default description'
  desc 'rational', 'I need an example'
  describe file('/tmp') do
    it { should be_directory }
  end
end
```

Many thanks to @jquick for helping me with the unit tests.
* Remove unused `descriptions` method
* Remove unused profile from test mocks
* Respond to feedback

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-09-26 13:28:57 -04:00

72 lines
2.6 KiB
Ruby

# encoding: utf-8
require 'helper'
describe Inspec::Reporters::Automate do
let(:path) { File.expand_path(File.dirname(__FILE__)) }
let(:options) do
{
'url' => "https://my-automate-server.mycompany.com/data-collector/v0/",
'token' => "kwe09wef9uqwqmpoqwdqd=",
'node_uuid' => "22ad2f99-f84f-5456-95a0-7e91b4b66690",
'node_name' => "test_node",
'environment' => "prod",
'report_uuid' => "22ad2f99-f84f-5456-95a0-7e91b4b12345",
'job_uuid' => "22ad2f99-f84f-5456-95a0-jobuuid12345",
}
end
let(:report) do
data = JSON.parse(File.read(path + '/../mock/reporters/run_data.json'), symbolize_names: true)
options.merge!({ run_data: data })
Inspec::Reporters::Automate.new(options)
end
describe '#enriched_report' do
it 'returns a enriched report' do
report.enriched_report[:node_uuid].must_equal "22ad2f99-f84f-5456-95a0-7e91b4b66690"
report.enriched_report[:node_name].must_equal "test_node"
report.enriched_report[:environment].must_equal "prod"
report.enriched_report[:report_uuid].must_equal "22ad2f99-f84f-5456-95a0-7e91b4b12345"
report.enriched_report[:job_uuid].must_equal "22ad2f99-f84f-5456-95a0-jobuuid12345"
end
end
describe '#send_report' do
it 'returns true for sent report' do
headers = {
'Content-Type' => 'application/json',
'x-data-collector-token' => 'kwe09wef9uqwqmpoqwdqd=',
'x-data-collector-auth' => 'version=1.0',
}
stub = Net::HTTP::Post.new("/data-collector/v0/", headers)
Net::HTTP::Post.expects(:new).with("/data-collector/v0/", headers).returns(stub)
Net::HTTP.any_instance.stubs(:request).returns(Net::HTTPSuccess.new(nil, nil, nil))
report.send_report.must_equal true
end
end
describe '#uuid_from_string' do
it 'converts a string to a uuid' do
end_time = "2018-03-28T14:10:50Z"
node_uuid = "22ad2f99-f84f-5456-95a0-7e91b4b66690"
assert = "4cd5aaa3-eea0-5aa2-9837-631e10b873b1"
report.send(:uuid_from_string, end_time + node_uuid).must_equal assert
end
end
describe 'config insecure override' do
it 'updates verify_ssl if insecure is set to false' do
options['insecure'] = false
reporter = Inspec::Reporters::Automate.new(options)
config = reporter.instance_variable_get(:@config)
config['verify_ssl'].must_equal true
end
it 'updates verify_ssl if insecure is set to true' do
options['insecure'] = true
reporter = Inspec::Reporters::Automate.new(options)
config = reporter.instance_variable_get(:@config)
config['verify_ssl'].must_equal false
end
end
end