diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2018-08-10 12:17:04 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2018-08-10 12:17:04 -0700 |
commit | b7493fd0855e7575b91f695b28ef3af1b47f0276 (patch) | |
tree | 6c5925790995c4e0e734439e27861f3f93c48244 /spec/unit/provider/package/rubygems_spec.rb | |
parent | 7c9178e5dd4ec7b5a75993c148b087bac6e5b53d (diff) | |
download | chef-b7493fd0855e7575b91f695b28ef3af1b47f0276.tar.gz |
add centos-7 rspec testing
running rspec inside a test-kitchen provisioned centos-7 docker container
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Diffstat (limited to 'spec/unit/provider/package/rubygems_spec.rb')
-rw-r--r-- | spec/unit/provider/package/rubygems_spec.rb | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/spec/unit/provider/package/rubygems_spec.rb b/spec/unit/provider/package/rubygems_spec.rb index 6b33ab97f9..2e9888fb78 100644 --- a/spec/unit/provider/package/rubygems_spec.rb +++ b/spec/unit/provider/package/rubygems_spec.rb @@ -27,6 +27,19 @@ module GemspecBackcompatCreator end end +# this is a global variable we construct of the highest rspec-core version which is installed, using APIs which +# will break out of the bundle -- and done this way so that we can mock all these internal Gem APIs later... +class RspecVersionString + def self.rspec_version_string + @rspec_version_string ||= begin + stubs = Gem::Specification.send(:installed_stubs, Gem::Specification.dirs, "rspec-core-*.gemspec") + stubs.select! { |stub| stub.name == "rspec-core" && Gem::Dependency.new("rspec-core", ">= 0").requirement.satisfied_by?(stub.version) } + stubs.max_by(&:version).version.to_s + end + end +end +RspecVersionString.rspec_version_string + require "spec_helper" require "ostruct" @@ -57,7 +70,7 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do end it "determines the installed versions of gems from the source index (part2: the unmockening)" do - expected = ["rspec-core", Gem::Version.new(RSpec::Core::Version::STRING)] + expected = ["rspec-core", Gem::Version.new( RspecVersionString.rspec_version_string )] actual = @gem_env.installed_versions(Gem::Dependency.new("rspec-core", nil)).map { |spec| [spec.name, spec.version] } expect(actual).to include(expected) end @@ -247,7 +260,7 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do end skip("cant find your gem executable") if path_to_gem.empty? gem_env = Chef::Provider::Package::Rubygems::AlternateGemEnvironment.new(path_to_gem) - expected = ["rspec-core", Gem::Version.new(RSpec::Core::Version::STRING)] + expected = ["rspec-core", Gem::Version.new( RspecVersionString.rspec_version_string )] actual = gem_env.installed_versions(Gem::Dependency.new("rspec-core", nil)).map { |s| [s.name, s.version] } expect(actual).to include(expected) end @@ -400,7 +413,7 @@ describe Chef::Provider::Package::Rubygems do end describe "when new_resource version is an rspec version" do - let(:current_version) { RSpec::Core::Version::STRING } + let(:current_version) { RspecVersionString.rspec_version_string } let(:target_version) { current_version } it "triggers a gem configuration load so a later one will not stomp its config values" do |