inspec/test/unit/dependency_loader_test.rb

60 lines
1.9 KiB
Ruby

require "helper"
require "inspec/dependency_loader"
describe "dependency_loader" do
let(:config_dir_path) { File.expand_path "test/fixtures/config_dirs" }
let(:gem_list) { [{ name: "inspec-test-fixture", version: "0.1.0" }] }
def reset_globals
ENV["HOME"] = Dir.home
end
before(:each) do
reset_globals
ENV["HOME"] = File.join(config_dir_path, "test-fixture-1-float/gems/2.7.0")
end
after(:each) do
reset_globals
end
let(:gem_path) { [ENV["HOME"]] }
let(:dependency_loader) { Inspec::DependencyLoader.new(gem_path, gem_list) }
describe "load" do
it "loads the gem dependency if already installed on the given gem path." do
result = dependency_loader.load
_(result).must_equal gem_list
end
it "raises error if the gem dependency not exist on the given gem path." do
dependency_loader.gem_list = [{ name: "test_gem", version: "0.0.1" }]
err = _ { dependency_loader.load }.must_raise Inspec::GemDependencyLoadError
_(err.message).must_equal "Unable to resolve dependency: user requested \'test_gem (= 0.0.1)\'"
end
end
describe "gem_installed?" do
it "returns the list of gems installed if gem already installed" do
result = dependency_loader.gem_installed?("inspec-test-fixture")
_(result).must_equal true
end
it "returns nil if specified gem is not already installed." do
result = dependency_loader.gem_installed?("test_gem")
_(result).must_equal false
end
end
describe "gem_version_installed?" do
it "returns the list of gems installed if gem with specified version is already installed" do
result = dependency_loader.gem_version_installed?("inspec-test-fixture", "0.1.0")
_(result).must_equal true
end
it "returns nil if gem with specified version is not already installed." do
result = dependency_loader.gem_version_installed?("test_gem", "0.0.1")
_(result).must_equal false
end
end
end