(PDOC-106) Add acceptance test for --emit-json CLI options

This commit is contained in:
Will Hopper 2016-09-30 16:33:10 -07:00
parent 3b66f5888f
commit c5e3d488da
1 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,41 @@
require 'spec_helper_acceptance'
require 'util'
require 'json'
include PuppetStrings::Acceptance::Util
describe 'Emitting JSON' do
expected = {
"puppet_classes" => [],
"defined_types" => [],
"resource_types" => [],
"providers" => [],
"puppet_functions" => [
"name" => "function3x",
"file" => "/etc/puppet/modules/test/lib/puppet/parser/functions/function3x.rb",
"line" => 1,
"type" => "ruby3x",
"signature" => "function3x()",
"docstring" => {
"text" => "This is the function documentation for `function3x`",
"tags" => ["tag_name" => "return", "text" => "", "types" => ["Any"]]},
"source" => "Puppet::Parser::Functions.newfunction(:function3x, :doc => \"This is the function documentation for `function3x`\") do |args|\nend"
]
}
it 'should emit JSON to stdout when using the --emit-json-stdout option' do
test_module_path = get_test_module_path(master, /Module test/)
on master, puppet('strings', 'generate', '--emit-json-stdout', "#{test_module_path}/lib/puppet/parser/functions/function3x.rb") do
output = stdout.chomp
expect(JSON.parse(output)).to eq(expected)
end
end
it 'should write JSON to a file when using the --emit-json option' do
test_module_path = get_test_module_path(master, /Module test/)
tmpfile = master.tmpfile('json_output.json')
on master, puppet('strings', 'generate', "--emit-json #{tmpfile}", "#{test_module_path}/lib/puppet/parser/functions/function3x.rb")
output = read_file_on(master, tmpfile)
expect(JSON.parse(output)).to eq(expected)
end
end