# copyright: 2017, Chef Software Inc. require "helper" require "thor" describe "BaseCLI" do let(:cli) { Inspec::BaseCLI.new } describe "formats the platfrom information" do it "verify platform formatting" do hash = { name: "test-os", families: "aws, cloud", release: "aws-sdk-v1" } expect = < $stderr, "log_level" => "debug", "reporter" => { "json" => { "stdout" => true, }, }, } Thor::CoreExt::HashWithIndifferentAccess.new(o) end let(:format) do device = options[:logger].instance_variable_get(:"@logdev") device.instance_variable_get(:"@dev") end it "sets to stderr for log_location" do cli.send(:configure_logger, options) _(format).must_equal $stderr end it "sets to stderr for json" do options.delete("log_location") options.delete("log_level") cli.send(:configure_logger, options) _(format).must_equal $stderr end it "sets defaults to stdout for everything else" do options.delete("log_location") options.delete("log_level") options.delete("reporter") cli.send(:configure_logger, options) _(format).must_equal $stdout end end describe "suppress_log_output?" do it "suppresses json" do opts = { "reporter" => { "json" => { "stdout" => true } } } _(cli.send(:suppress_log_output?, opts)).must_equal true end it "do not suppresses json-min when going to file" do opts = { "reporter" => { "json-min" => { "file" => "/tmp/json" } } } _(cli.send(:suppress_log_output?, opts)).must_equal false end it "suppresses json-rspec" do opts = { "reporter" => { "json-rspec" => { "stdout" => true } } } _(cli.send(:suppress_log_output?, opts)).must_equal true end it "suppresses json-automate" do opts = { "reporter" => { "json-automate" => { "stdout" => true } } } _(cli.send(:suppress_log_output?, opts)).must_equal true end it "suppresses junit" do opts = { "reporter" => { "junit" => { "stdout" => true } } } _(cli.send(:suppress_log_output?, opts)).must_equal true end it "do not suppresses cli" do opts = { "reporter" => { "cli" => nil } } _(cli.send(:suppress_log_output?, opts)).must_equal false end it "do not suppresses cli" do opts = { "reporter" => { "cli" => nil, "json" => { "file" => "/tmp/json" } } } _(cli.send(:suppress_log_output?, opts)).must_equal false end end end