vagrant/test/unit/plugins/provisioners/chef/provisioner/chef_solo_test.rb

86 lines
2.9 KiB
Ruby

require_relative "../../../../base"
require Vagrant.source_root.join("plugins/provisioners/chef/provisioner/chef_solo")
describe VagrantPlugins::Chef::Provisioner::ChefSolo do
include_context "unit"
let(:iso_env) do
# We have to create a Vagrantfile so there is a root path
env = isolated_environment
env.vagrantfile("")
env.create_vagrant_env
end
let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
let(:config) { double("config") }
subject { described_class.new(machine, config) }
before do
allow(config).to receive(:node_name)
allow(config).to receive(:node_name=)
end
describe "#expanded_folders" do
before { allow(subject).to receive(:windows?).and_return(true) }
it "handles the default Windows provisioning path" do
allow(config).to receive(:provisioning_path).and_return(nil)
remote_path = subject.expanded_folders([[:vm, "cookbooks-1"]])[0][2]
expect(remote_path).to eq("/vagrant-chef/cookbooks-1")
end
it "removes drive letter prefix from path" do
allow(config).to receive(:provisioning_path).and_return(nil)
expect(File).to receive(:expand_path).and_return("C:/vagrant-chef/cookbooks-1")
result = subject.expanded_folders([[:vm, "cookbooks-1"]])
remote_path = result[0][2]
expect(remote_path).to eq("/vagrant-chef/cookbooks-1")
end
end
describe "#expanded_folders" do
it "expands Windows absolute provisioning path with relative path" do
provisioning_path = "C:/vagrant-chef-1"
unexpanded_path = "cookbooks-1"
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
expect(remote_path).to eq("/vagrant-chef-1/cookbooks-1")
end
it "expands Windows absolute provisioning path with absolute path" do
provisioning_path = "C:/vagrant-chef-1"
unexpanded_path = "/cookbooks-1"
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
expect(remote_path).to eq("/cookbooks-1")
end
it "expands Windows absolute provisioning path with Windows absolute path" do
provisioning_path = "C:/vagrant-chef-1"
unexpanded_path = "D:/cookbooks-1"
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
expect(remote_path).to eq("/cookbooks-1")
end
it "expands absolute provisioning path with Windows absolute path" do
provisioning_path = "/vagrant-chef-1"
unexpanded_path = "D:/cookbooks-1"
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
expect(remote_path).to eq("/cookbooks-1")
end
end
end