This includes updates for resolving all warnings provided by Ruby for deprecations and/or removed methods. It also enables support for Ruby 2.7 in the specification constraint as all 2.7 related warnings are resolved with this changeset.
86 lines
2.1 KiB
Ruby
86 lines
2.1 KiB
Ruby
require_relative "../../../../base"
|
|
|
|
require Vagrant.source_root.join("plugins/provisioners/chef/config/chef_apply")
|
|
|
|
describe VagrantPlugins::Chef::Config::ChefApply do
|
|
include_context "unit"
|
|
|
|
subject { described_class.new }
|
|
|
|
let(:machine) { double("machine") }
|
|
|
|
def chef_error(key, options = {})
|
|
I18n.t("vagrant.provisioners.chef.#{key}", **options)
|
|
end
|
|
|
|
describe "#recipe" do
|
|
it "defaults to nil" do
|
|
subject.finalize!
|
|
expect(subject.recipe).to be(nil)
|
|
end
|
|
end
|
|
|
|
describe "#upload_path" do
|
|
it "defaults to /tmp/vagrant-chef-apply.rb" do
|
|
subject.finalize!
|
|
expect(subject.upload_path).to eq("/tmp/vagrant-chef-apply")
|
|
end
|
|
end
|
|
|
|
describe "#validate" do
|
|
before do
|
|
allow(machine).to receive(:env)
|
|
.and_return(double("env",
|
|
root_path: "",
|
|
))
|
|
|
|
subject.recipe = <<-EOH
|
|
package "foo"
|
|
EOH
|
|
end
|
|
|
|
let(:result) { subject.validate(machine) }
|
|
let(:errors) { result["chef apply provisioner"] }
|
|
|
|
context "when the recipe is nil" do
|
|
it "returns an error" do
|
|
subject.recipe = nil
|
|
subject.finalize!
|
|
expect(errors).to include chef_error("recipe_empty")
|
|
end
|
|
end
|
|
|
|
context "when the recipe is empty" do
|
|
it "returns an error" do
|
|
subject.recipe = " "
|
|
subject.finalize!
|
|
expect(errors).to include chef_error("recipe_empty")
|
|
end
|
|
end
|
|
|
|
context "when the log_level is an empty array" do
|
|
it "returns an error" do
|
|
subject.log_level = " "
|
|
subject.finalize!
|
|
expect(errors).to include chef_error("log_level_empty")
|
|
end
|
|
end
|
|
|
|
context "when the upload_path is nil" do
|
|
it "returns an error" do
|
|
subject.upload_path = nil
|
|
subject.finalize!
|
|
expect(errors).to include chef_error("upload_path_empty")
|
|
end
|
|
end
|
|
|
|
context "when the upload_path is an empty array" do
|
|
it "returns an error" do
|
|
subject.upload_path = " "
|
|
subject.finalize!
|
|
expect(errors).to include chef_error("upload_path_empty")
|
|
end
|
|
end
|
|
end
|
|
end
|