inspec/test/unit/plugin_test.rb
Dominik Richter e56321f6c7 semantics: rename CLI plugins registry -> subcommands
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
2016-02-09 01:20:38 +01:00

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