diff --git a/lib/vagrant/shared_helpers.rb b/lib/vagrant/shared_helpers.rb index 4bcfaadf0..ae45ea305 100644 --- a/lib/vagrant/shared_helpers.rb +++ b/lib/vagrant/shared_helpers.rb @@ -122,7 +122,8 @@ module Vagrant # # @return [Boolean] def self.prerelease? - Gem::Version.new(Vagrant::VERSION).prerelease? + !!ENV["VAGRANT_ALLOW_PRERELEASE"] || + Gem::Version.new(Vagrant::VERSION).prerelease? end # This allows control over dependency resolution when installing diff --git a/test/unit/vagrant/shared_helpers_test.rb b/test/unit/vagrant/shared_helpers_test.rb index fda3bc073..781c882ea 100644 --- a/test/unit/vagrant/shared_helpers_test.rb +++ b/test/unit/vagrant/shared_helpers_test.rb @@ -142,6 +142,26 @@ describe Vagrant do stub_const("Vagrant::VERSION", "1.0.0") expect(subject.prerelease?).to be(false) end + + context "with environment variable set" do + before { allow(ENV).to receive(:[]).with("VAGRANT_ALLOW_PRERELEASE").and_return("1") } + + context "when version is development version" do + before { stub_const("Vagrant::VERSION", "1.0.0.dev") } + + it "should return true" do + expect(subject.prerelease?).to be(true) + end + end + + context "when version is non-development version" do + before { stub_const("Vagrant::VERSION", "1.0.0") } + + it "should return true" do + expect(subject.prerelease?).to be(true) + end + end + end end describe ".enable_resolv_replace" do