mirror of
https://github.com/inspec/inspec
synced 2024-11-23 21:23:29 +00:00
e56321f6c7
Basically make sure everyone understands these are only subcommands. we might consider adding plugins for options or existing commands instead of new subcommands. this just ensures everyone knows what registry is for
45 lines
1 KiB
Ruby
45 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/targets'
|
|
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
|