mirror of
https://github.com/inspec/inspec
synced 2024-12-19 17:43:44 +00:00
e46018a517
Signed-off-by: Miah Johnson <miah@chia-pet.org>
88 lines
2.5 KiB
Ruby
88 lines
2.5 KiB
Ruby
require "helper"
|
|
require "inspec/resource"
|
|
require "inspec/resources/gem"
|
|
|
|
describe "Inspec::Resources::Gem" do
|
|
it "verify gem is not installed" do
|
|
resource = load_resource("gem", "not-installed")
|
|
_(resource.installed?).must_equal false
|
|
end
|
|
|
|
it "verify gem package detail parsing" do
|
|
resource = load_resource("gem", "rubocop")
|
|
pkg = {
|
|
name: "rubocop",
|
|
version: "0.33.0",
|
|
type: "gem",
|
|
installed: true,
|
|
versions: ["0.33.0", "0.32.1", "0.28.0"],
|
|
}
|
|
_(resource.installed?).must_equal true
|
|
_(resource.info).must_equal pkg
|
|
_(resource.gem_binary).must_equal "gem"
|
|
end
|
|
|
|
it "specifying gem binary" do
|
|
resource = load_resource("gem", "pry", "/opt/ruby-2.3.1/embedded/bin/gem")
|
|
pkg = {
|
|
name: "pry",
|
|
version: "0.10.4",
|
|
type: "gem",
|
|
installed: true,
|
|
versions: ["0.10.4"],
|
|
}
|
|
_(resource.installed?).must_equal true
|
|
_(resource.info).must_equal pkg
|
|
_(resource.gem_binary).must_equal "/opt/ruby-2.3.1/embedded/bin/gem"
|
|
end
|
|
|
|
it "verify gem in :chef" do
|
|
resource = load_resource("gem", "chef-sugar", :chef)
|
|
pkg = {
|
|
name: "chef-sugar",
|
|
version: "3.4.0",
|
|
type: "gem",
|
|
installed: true,
|
|
versions: ["3.4.0"],
|
|
}
|
|
_(resource.installed?).must_equal true
|
|
_(resource.info).must_equal pkg
|
|
_(resource.gem_binary).must_equal "/opt/chef/embedded/bin/gem"
|
|
end
|
|
|
|
it "verifies gem in :chef when multiple versions are installed" do
|
|
resource = load_resource("gem", "chef-sugar", :chef)
|
|
_(resource.installed?).must_equal true
|
|
_(resource.versions[0]).must_match(/3\.4/)
|
|
_(resource.versions).wont_include(/2\.4/)
|
|
_(resource.gem_binary).must_equal "/opt/chef/embedded/bin/gem"
|
|
end
|
|
|
|
it "verify gem in :chef on windows" do
|
|
resource = MockLoader.new(:windows).load_resource("gem", "json", :chef)
|
|
pkg = {
|
|
name: "json",
|
|
version: "1.8.3",
|
|
type: "gem",
|
|
installed: true,
|
|
versions: ["1.8.3"],
|
|
}
|
|
_(resource.installed?).must_equal true
|
|
_(resource.info).must_equal pkg
|
|
_(resource.gem_binary).must_equal 'c:\opscode\chef\embedded\bin\gem.bat'
|
|
end
|
|
|
|
it "verify gem in :chef_server" do
|
|
resource = load_resource("gem", "knife-backup", :chef_server)
|
|
pkg = {
|
|
name: "knife-backup",
|
|
version: "0.0.12",
|
|
type: "gem",
|
|
installed: true,
|
|
versions: ["0.0.12"],
|
|
}
|
|
_(resource.installed?).must_equal true
|
|
_(resource.info).must_equal pkg
|
|
_(resource.gem_binary).must_equal "/opt/opscode/embedded/bin/gem"
|
|
end
|
|
end
|