Brian Cain fe7705e694
Update how disk_ext default is set
Prior to this commit, the default value of disk_ext was set in the
finalize! method, and was really only valid for the virtualbox provider.
This commit updates that by moving the step into the validate function,
which has access to the machines provider.
2020-06-30 14:22:41 -07:00

61 lines
1.4 KiB
Ruby

require File.expand_path("../../../../base", __FILE__)
require Vagrant.source_root.join("plugins/kernel_v2/config/disk")
describe VagrantPlugins::Kernel_V2::VagrantConfigDisk do
include_context "unit"
let(:type) { :disk }
subject { described_class.new(type) }
let(:provider) { double("provider") }
let(:machine) { double("machine", provider: provider, provider_name: :virtualbox) }
def assert_invalid
errors = subject.validate(machine)
if !errors.empty? { |v| !v.empty? }
raise "No errors: #{errors.inspect}"
end
end
def assert_valid
errors = subject.validate(machine)
if !errors.empty? { |v| v.empty? }
raise "Errors: #{errors.inspect}"
end
end
before do
env = double("env")
subject.name = "foo"
subject.size = 100
allow(provider).to receive(:capability?).with(:validate_disk_ext).and_return(true)
allow(provider).to receive(:capability).with(:validate_disk_ext, "vdi").and_return(true)
end
describe "with defaults" do
it "is valid with test defaults" do
subject.finalize!
assert_valid
end
it "sets a disk type" do
subject.finalize!
expect(subject.type).to eq(type)
end
it "defaults to non-primray disk" do
subject.finalize!
expect(subject.primary).to eq(false)
end
end
describe "defining a new config that needs to match internal restraints" do
before do
end
end
end