From 28bf202c0358cedb9c6906d34487670bd30fce22 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 23 Jun 2021 17:43:19 -0400 Subject: [PATCH] ci: ensure that nokogumbo 2.0.4 and 2.0.5 both work This should ensure that we don't break anybody who has upgraded Nokogiri but hasn't dropped Nokogumbo yet. Related to #2204 --- scripts/test-gem-install | 3 ++- scripts/test-nokogumbo-compatibility | 20 +++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/scripts/test-gem-install b/scripts/test-gem-install index 75bb69e4d0..c650ef5eeb 100755 --- a/scripts/test-gem-install +++ b/scripts/test-gem-install @@ -38,4 +38,5 @@ rake test # delete the Gemfile because that's confusing to older versions of rubygems (e.g., bionic32) rm -f Gemfile Gemfile.lock -./scripts/test-nokogumbo-compatibility +./scripts/test-nokogumbo-compatibility 2.0.4 +./scripts/test-nokogumbo-compatibility 2.0.5 diff --git a/scripts/test-nokogumbo-compatibility b/scripts/test-nokogumbo-compatibility index 600723ea83..6ccd53f5d4 100755 --- a/scripts/test-nokogumbo-compatibility +++ b/scripts/test-nokogumbo-compatibility @@ -22,18 +22,26 @@ raise "could not find installed gem" unless gemspec require "bundler/inline" +nokogumbo_version = if ARGV[0] =~ /\d+\.\d+\.\d+/ + ARGV[0] +end + gemfile(true) do source "https://rubygems.org" gem "minitest" gem "minitest-reporters" gem "nokogiri", "=#{gemspec.version}" - gem "nokogumbo" + if nokogumbo_version + gem "nokogumbo", "=#{nokogumbo_version}" + else + gem "nokogumbo" + end end -nokogumbo_gemspec = Gem::Specification.find_by_name('nokogumbo') +nokogumbo_gemspec = Gem::Specification.find_by_name("nokogumbo") -require 'nokogumbo' -require 'yaml' +require "nokogumbo" +require "yaml" if ARGV.include?("-v") puts "---------- Nokogiri version info ----------" @@ -54,6 +62,8 @@ Minitest::Reporters.use!([Minitest::Reporters::SpecReporter.new]) puts "Testing #{gemspec.full_name} installed in #{gemspec.base_dir}" describe gemspec.full_name do it "works" do - assert(Nokogiri::HTML5::Document.parse("
ahoy
")) + doc = Nokogiri::HTML5::Document.parse("
ahoy
") + assert(doc) + assert_equal("ahoy", doc.at_css("/html/body/div").text) end end