diff --git a/plugins/providers/virtualbox/cap.rb b/plugins/providers/virtualbox/cap.rb index 1c0512407..ab170b282 100644 --- a/plugins/providers/virtualbox/cap.rb +++ b/plugins/providers/virtualbox/cap.rb @@ -29,6 +29,7 @@ module VagrantPlugins # # @return [Array] Snapshot Name def self.snapshot_list(machine) + return [] if machine.id.nil? machine.provider.driver.list_snapshots(machine.id) end end diff --git a/test/unit/plugins/providers/virtualbox/cap_test.rb b/test/unit/plugins/providers/virtualbox/cap_test.rb index 351b40c5f..a4071b578 100644 --- a/test/unit/plugins/providers/virtualbox/cap_test.rb +++ b/test/unit/plugins/providers/virtualbox/cap_test.rb @@ -40,4 +40,19 @@ describe VagrantPlugins::ProviderVirtualBox::Cap do expect(described_class.forwarded_ports(machine)).to be(nil) end end + + describe "#snapshot_list" do + it "returns all the snapshots" do + allow(machine).to receive(:id).and_return("1234") + allow(driver).to receive(:list_snapshots).with(machine.id). + and_return(["backup", "old"]) + + expect(described_class.snapshot_list(machine)).to eq(["backup", "old"]) + end + + it "returns empty array when the machine is does not exist" do + allow(machine).to receive(:id).and_return(nil) + expect(described_class.snapshot_list(machine)).to eq([]) + end + end end