# encoding: utf-8

require_relative '../../../shared/core_plugin_test_helper.rb'

class ComplianceCli < MiniTest::Test
  include CorePluginFunctionalHelper

  def test_help_output
    out = run_inspec_process('compliance help')
    assert_equal out.exit_status, 0
    assert_includes out.stdout, 'inspec compliance exec PROFILE'
  end

  def test_logout_command
    out = run_inspec_process('compliance logout')
    assert_equal out.exit_status, 0
    assert_includes out.stdout, ''
  end

  def test_error_login_with_invalid_url
    out = run_inspec_process('compliance login')
    assert_equal out.exit_status, 1
    assert_includes out.stderr, 'ERROR: "inspec compliance login" was called with no arguments'
  end

  def test_profile_list_without_auth
    out = run_inspec_process('compliance profiles')
    assert_equal out.exit_status, 0 # TODO: make this error
    assert_includes out.stdout, 'You need to login first with `inspec compliance login`'
  end

  def test_error_upload_without_args
    out = run_inspec_process('compliance upload')
    assert_equal out.exit_status, 1
    assert_includes out.stderr, 'ERROR: "inspec compliance upload" was called with no arguments'
  end

  def test_error_upload_with_fake_path
    out = run_inspec_process('compliance upload /path/to/dir')
    assert_equal out.exit_status, 0 # TODO: make this error
    assert_includes out.stdout, 'You need to login first with `inspec compliance login`'
  end
end
