mirror of
https://github.com/inspec/inspec
synced 2024-11-30 16:39:20 +00:00
44 lines
1 KiB
Ruby
44 lines
1 KiB
Ruby
# encoding: utf-8
|
|
# author: Christoph Hartmann
|
|
# author: Dominik Richter
|
|
|
|
# TODO: do not use helper, since all plugins are loaded statically
|
|
require 'minitest/autorun'
|
|
require 'minitest/spec'
|
|
require 'mocha/setup'
|
|
|
|
require 'inspec/plugins/cli'
|
|
require 'thor'
|
|
|
|
describe 'plugin system' do
|
|
describe 'with an empty profile' do
|
|
let(:cli_reg) { Inspec::Plugins::CLI }
|
|
|
|
before do
|
|
# since the registry is a global singleton, clean it before using
|
|
cli_reg.subcommands.clear
|
|
end
|
|
|
|
it 'is empty' do
|
|
cli_reg.subcommands.must_equal({})
|
|
end
|
|
|
|
it 'stores one cli plugin' do
|
|
plugin = {
|
|
klass: Thor.new,
|
|
subcommand_name: 'my_cmd',
|
|
usage: 'usage my_cmd',
|
|
description: 'desc of my_cmd',
|
|
options: { test: 1 }
|
|
}
|
|
cli_reg.add_subcommand(
|
|
plugin[:klass],
|
|
plugin[:subcommand_name],
|
|
plugin[:usage],
|
|
plugin[:description],
|
|
plugin[:options]
|
|
)
|
|
cli_reg.subcommands['my_cmd'].must_equal(plugin)
|
|
end
|
|
end
|
|
end
|