Class: PluginManagerCliUninstall

Inherits:
Minitest::Test
  • Object
show all
Includes:
CorePluginFunctionalHelper, PluginManagerHelpers
Defined in:
lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb

Overview

—————————————————————————————–#

inspec plugin uninstall

—————————————————————————————–#

Constant Summary

Constants included from CorePluginFunctionalHelper

CorePluginFunctionalHelper::TRAIN_CONNECTION

Instance Method Summary collapse

Methods included from PluginManagerHelpers

#clear_empty_config_dir, #copy_in_core_config_dir, #copy_in_project_config_dir, #teardown

Methods included from CorePluginFunctionalHelper

#__find_plugin_path_from_caller, #__make_empty_plugin_file_data_structure, #__make_plugin_file_data_structure_with_path, #run_inspec_process, #run_inspec_process_with_this_plugin

Instance Method Details

#test_fail_uninstall_from_plugin_that_is_not_installedObject



806
807
808
809
810
811
812
813
814
815
816
# File 'lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb', line 806

def test_fail_uninstall_from_plugin_that_is_not_installed
  uninstall_result = run_inspec_process_with_this_plugin("plugin uninstall inspec-test-fixture-nonesuch")

  skip_windows!
  refute_includes "Inspec::Plugin::V2::UnInstallError", uninstall_result.stdout # Stacktrace marker
  assert_match(/No such plugin installed:.+ - uninstall failed/, uninstall_result.stdout)

  assert_empty uninstall_result.stderr

  assert_exit_code 1, uninstall_result
end

#test_when_a_gem_plugin_can_be_uninstalledObject



756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
# File 'lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb', line 756

def test_when_a_gem_plugin_can_be_uninstalled
  pre_block = Proc.new do |plugin_statefile_data, tmp_dir|
    plugin_statefile_data.clear # Signal not to write a file, we'll provide one.
    copy_in_core_config_dir("test-fixture-1-float", tmp_dir)
  end

  # Attempt uninstall
  uninstall_result = run_inspec_process_with_this_plugin("plugin uninstall inspec-test-fixture", pre_run: pre_block, post_run: list_after_run)

  success_message = uninstall_result.stdout.split("\n").grep(/uninstalled/).last
  skip_windows!
  refute_nil success_message, "Should find a success message at the end"
  assert_includes success_message, "inspec-test-fixture"
  assert_includes success_message, "0.1.0"
  assert_includes success_message, "has been uninstalled"

  list_result = uninstall_result.payload.list_result
  itf_line = list_result.stdout.split("\n").grep(/inspec-test-fixture/).first
  assert_nil itf_line, "inspec-test-fixture should not appear in the output of inspec list"

  assert_empty uninstall_result.stderr

  assert_exit_code 0, uninstall_result
end

#test_when_a_path_plugin_can_be_uninstalledObject



781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
# File 'lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb', line 781

def test_when_a_path_plugin_can_be_uninstalled
  pre_block = Proc.new do |plugin_statefile_data, tmp_dir|
    plugin_statefile_data.clear # Signal not to write a file, we'll provide one.
    # This fixture includes a path install for inspec-meaning-of-life
    copy_in_core_config_dir("test-fixture-1-float", tmp_dir)
  end

  uninstall_result = run_inspec_process_with_this_plugin("plugin uninstall inspec-meaning-of-life", pre_run: pre_block, post_run: list_after_run)

  success_message = uninstall_result.stdout.split("\n").grep(/uninstalled/).last
  skip_windows!
  refute_nil success_message, "Should find a success message at the end"
  assert_includes success_message, "inspec-meaning-of-life"
  assert_includes success_message, "path-based plugin install"
  assert_includes success_message, "has been uninstalled"

  list_result = uninstall_result.payload.list_result
  itf_line = list_result.stdout.split("\n").grep(/inspec-meaning-of-life/).first
  assert_nil itf_line, "inspec-meaning-of-life should not appear in the output of inspec list"

  assert_empty uninstall_result.stderr

  assert_exit_code 0, uninstall_result
end