Sha256: 3eba77403c7a858cc40cb5b911cb0d28e2f03d1ca559313eed096aa1ef816e6c

Contents?: true

Size: 1.81 KB

Versions: 3

Compression:

Stored size: 1.81 KB

Contents

require "fileutils"
require "plugins/shared/core_plugin_test_helper"
require "securerandom"

class ArtifactCli < Minitest::Test
  include CorePluginFunctionalHelper

  def test_generating_archive_keys
    prepare_examples do |dir|
      unique_key_name = SecureRandom.uuid
      out = run_inspec_process("artifact generate --keyname #{unique_key_name}", prefix: "cd #{dir};")

      stdout = out.stdout.force_encoding(Encoding::UTF_8)
      assert_includes stdout, "Generating private key"
      assert_includes stdout, "Generating public key"

      assert_exit_code 0, out
    end
  end

  def test_verify_and_install_signed_profile
    prepare_examples do |dir|
      unique_key_name = SecureRandom.uuid
      install_dir = File.join(dir, SecureRandom.uuid)
      FileUtils.mkdir(install_dir)

      # create profile
      profile = File.join(dir, "artifact-profile")
      run_inspec_process("init profile artifact-profile", prefix: "cd #{dir};")

      out = run_inspec_process("artifact generate --keyname #{unique_key_name}", prefix: "cd #{dir};")
      assert_exit_code 0, out

      out = run_inspec_process("artifact sign-profile --profile #{profile} --keyname #{unique_key_name}", prefix: "cd #{dir};")
      assert_exit_code 0, out

      # The archive install commands do not currently support windows
      # and use specific linux extract tar commands. Since artifact is
      # still experimental we are skipping it for now.
      return if is_windows?

      out = run_inspec_process("artifact install-profile --infile artifact-profile-0.1.0.iaf --destdir #{install_dir}", prefix: "cd #{dir};")
      assert_exit_code 0, out

      assert_includes out.stdout.force_encoding(Encoding::UTF_8), "Installing to #{install_dir}"
      assert_includes Dir.entries(install_dir).join, "inspec.yml"
      assert_exit_code 0, out
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
inspec-4.18.51 lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb
inspec-4.18.39 lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb
inspec-4.18.38 lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb