diff --git a/plugins/kernel_v2/config/disk.rb b/plugins/kernel_v2/config/disk.rb index e1480be24..95b8005f3 100644 --- a/plugins/kernel_v2/config/disk.rb +++ b/plugins/kernel_v2/config/disk.rb @@ -169,12 +169,13 @@ module VagrantPlugins if @size.is_a?(String) @size = Vagrant::Util::Numeric.string_to_bytes(@size) end - - if !@size - errors << I18n.t("vagrant.config.disk.invalid_size", name: @name, machine: machine.name) - end end + if !@size + errors << I18n.t("vagrant.config.disk.invalid_size", name: @name, machine: machine.name) + end + + if @file if !@file.is_a?(String) errors << I18n.t("vagrant.config.disk.invalid_file_type", file: @file, machine: machine.name) diff --git a/test/unit/plugins/kernel_v2/config/disk_test.rb b/test/unit/plugins/kernel_v2/config/disk_test.rb index 0d7a39959..cb37ead49 100644 --- a/test/unit/plugins/kernel_v2/config/disk_test.rb +++ b/test/unit/plugins/kernel_v2/config/disk_test.rb @@ -56,6 +56,16 @@ describe VagrantPlugins::Kernel_V2::VagrantConfigDisk do end end + describe "with an invalid config" do + let(:invalid_subject) { described_class.new(type) } + + it "raises an error if size not set" do + invalid_subject.name = "bar" + subject.finalize! + assert_invalid + end + end + describe "defining a new config that needs to match internal restraints" do before do end