mirror of
https://github.com/inspec/inspec
synced 2024-12-02 09:29:32 +00:00
af4253c755
Signed-off-by: Liam Caproni <liamcaproni@gmail.com>
76 lines
No EOL
2.8 KiB
Ruby
76 lines
No EOL
2.8 KiB
Ruby
# encoding: utf-8
|
|
|
|
require 'yaml'
|
|
require_relative '../../../shared/core_plugin_test_helper.rb'
|
|
|
|
class InitCli < MiniTest::Test
|
|
include CorePluginFunctionalHelper
|
|
|
|
def test_generating_inspec_profile
|
|
Dir.mktmpdir do |dir|
|
|
profile = File.join(dir, 'test-profile')
|
|
out = run_inspec_process("init profile test-profile", prefix: "cd #{dir} &&")
|
|
assert_equal 0, out.exit_status
|
|
assert_includes out.stdout, 'Create new profile at'
|
|
assert_includes out.stdout, profile
|
|
assert_includes Dir.entries(profile).join, 'inspec.yml'
|
|
assert_includes Dir.entries(profile).join, 'README.md'
|
|
end
|
|
end
|
|
|
|
def test_generating_inspec_profile_with_explicit_platform
|
|
Dir.mktmpdir do |dir|
|
|
profile = File.join(dir, 'test-profile')
|
|
out = run_inspec_process("init profile --platform os test-profile", prefix: "cd #{dir} &&")
|
|
assert_equal 0, out.exit_status
|
|
assert_includes out.stdout, 'Create new profile at'
|
|
assert_includes out.stdout, profile
|
|
assert_includes Dir.entries(profile).join, 'inspec.yml'
|
|
assert_includes Dir.entries(profile).join, 'README.md'
|
|
end
|
|
end
|
|
|
|
def test_generating_inspec_profile_with_bad_platform
|
|
Dir.mktmpdir do |dir|
|
|
out = run_inspec_process("init profile --platform nonesuch test-profile", prefix: "cd #{dir} &&")
|
|
assert_equal 1, out.exit_status
|
|
assert_includes out.stdout, 'Unable to generate profile'
|
|
assert_includes out.stdout, "No template available for platform 'nonesuch'"
|
|
end
|
|
end
|
|
|
|
def test_profile_with_slash_name
|
|
Dir.mktmpdir do |dir|
|
|
profile = dir + '/test/deeper/profile'
|
|
out = run_inspec_process("init profile test/deeper/profile", prefix: "cd #{dir} &&")
|
|
assert_equal 0, out.exit_status
|
|
assert_equal true, File.exist?(profile)
|
|
profile = YAML.load_file("#{profile}/inspec.yml")
|
|
assert_equal 'profile', profile['name']
|
|
end
|
|
end
|
|
|
|
def test_generating_inspec_profile_gcp
|
|
Dir.mktmpdir do |dir|
|
|
profile = File.join(dir, 'test-gcp-profile')
|
|
out = run_inspec_process("init profile --platform gcp test-gcp-profile", prefix: "cd #{dir} &&")
|
|
assert_equal 0, out.exit_status
|
|
assert_includes out.stdout, 'Create new profile at'
|
|
assert_includes out.stdout, profile
|
|
assert_includes Dir.entries(profile).join, 'inspec.yml'
|
|
assert_includes Dir.entries(profile).join, 'README.md'
|
|
end
|
|
end
|
|
|
|
def test_generating_inspec_profile_aws
|
|
Dir.mktmpdir do |dir|
|
|
profile = File.join(dir,'test-aws-profile')
|
|
out = run_inspec_process("init profile --platform aws test-aws-profile", prefix: "cd #{dir} &&")
|
|
assert_equal 0, out.exit_status
|
|
assert_includes out.stdout, 'Create new profile at'
|
|
assert_includes out.stdout, profile
|
|
assert_includes Dir.entries(profile).join, 'inspec.yml'
|
|
assert_includes Dir.entries(profile).join, 'README.md'
|
|
end
|
|
end
|
|
end |