diff options
Diffstat (limited to 'test/rubygems/test_gem_update_suggestion.rb')
-rw-r--r-- | test/rubygems/test_gem_update_suggestion.rb | 153 |
1 files changed, 77 insertions, 76 deletions
diff --git a/test/rubygems/test_gem_update_suggestion.rb b/test/rubygems/test_gem_update_suggestion.rb index 520a69ac69..8cb8ee57ff 100644 --- a/test/rubygems/test_gem_update_suggestion.rb +++ b/test/rubygems/test_gem_update_suggestion.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require_relative "helper" require "rubygems/command" require "rubygems/update_suggestion" @@ -14,13 +15,13 @@ class TestUpdateSuggestion < Gem::TestCase @week = 7 * 24 * @minute end - def with_eglible_environment(**params) - self.class.with_eglible_environment(**params) do + def with_eligible_environment(**params) + self.class.with_eligible_environment(**params) do yield end end - def self.with_eglible_environment( + def self.with_eligible_environment( tty: true, rubygems_version: Gem::Version.new("1.2.3"), latest_rubygems_version: Gem::Version.new("2.0.0"), @@ -28,15 +29,18 @@ class TestUpdateSuggestion < Gem::TestCase reset_last_update_check: true, cmd: ) - original_config, Gem.configuration[:prevent_update_suggestion] = Gem.configuration[:prevent_update_suggestion], nil - original_env, ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"], nil - original_disable, Gem.disable_system_update_message = Gem.disable_system_update_message, nil + original_config = Gem.configuration[:prevent_update_suggestion] + Gem.configuration[:prevent_update_suggestion] = nil + original_env = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] + ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = nil + original_disable = Gem.disable_system_update_message + Gem.disable_system_update_message = nil Gem.configuration.last_update_check = 0 if reset_last_update_check Gem.ui.stub :tty?, tty do Gem.stub :rubygems_version, rubygems_version do Gem.stub :latest_rubygems_version, latest_rubygems_version do - cmd.stub :ci?, ci do + Gem::CIDetector.stub :ci?, ci do yield end end @@ -61,148 +65,145 @@ class TestUpdateSuggestion < Gem::TestCase end end - def test_eglible_for_update - with_eglible_environment(cmd: @cmd) do - Time.stub :now, 123456789 do - assert @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, 123456789 + def test_eligible_for_update + with_eligible_environment(cmd: @cmd) do + Time.stub :now, 123_456_789 do + assert_predicate @cmd, :eligible_for_update? + assert_equal 123_456_789, Gem.configuration.last_update_check # test last check is written to config file - assert File.read(Gem.configuration.state_file_name).match("123456789") + assert_include File.read(Gem.configuration.state_file_name), "123456789" end end end - def test_eglible_for_update_is_not_annoying_when_new_version_is_released + def test_eligible_for_update_is_not_annoying_when_new_version_is_released current_version = Gem::Version.new("1.2.0") latest_version = current_version - # checking for first time, it is not eglible since new version + # checking for first time, it is not eligible since new version # is not released yet and stored - with_eglible_environment(cmd: @cmd, rubygems_version: current_version, latest_rubygems_version: latest_version) do + with_eligible_environment(cmd: @cmd, rubygems_version: current_version, latest_rubygems_version: latest_version) do Time.stub :now, @start_time do - refute @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + refute_predicate @cmd, :eligible_for_update? + assert_equal @start_time, Gem.configuration.last_update_check end end - # checking next week, it is not eglible since new version + # checking next week, it is not eligible since new version # is not released yet and timestamp is stored - with_eglible_environment( + with_eligible_environment( cmd: @cmd, rubygems_version: current_version, latest_rubygems_version: latest_version, reset_last_update_check: false ) do Time.stub :now, @start_time + @week do - refute @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + @week + refute_predicate @cmd, :eligible_for_update? + assert_equal @start_time + @week, Gem.configuration.last_update_check end end # pretend new version is released latest_version = Gem::Version.new("1.3.0") - # checking later same next week, it is not eglible even new version + # checking later same next week, it is not eligible even new version # is released and timestamp is not stored - with_eglible_environment( + with_eligible_environment( cmd: @cmd, rubygems_version: current_version, latest_rubygems_version: latest_version, reset_last_update_check: false ) do Time.stub :now, @start_time + @week + @minute do - refute @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + @week + refute_predicate @cmd, :eligible_for_update? + assert_equal @start_time + @week, Gem.configuration.last_update_check end end end - def test_eglible_for_update_is_not_annoying_when_not_upgraded - with_eglible_environment(cmd: @cmd) do - # checking for first time, it is eglible and stored + def test_eligible_for_update_is_not_annoying_when_not_upgraded + with_eligible_environment(cmd: @cmd) do + # checking for first time, it is eligible and stored Time.stub :now, @start_time do - assert @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + assert_predicate @cmd, :eligible_for_update? + assert_equal @start_time, Gem.configuration.last_update_check end - # checking minute later is not eglible and not stored + # checking minute later is not eligible and not stored Time.stub :now, @start_time + @minute do - refute @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + refute_predicate @cmd, :eligible_for_update? + assert_equal @start_time, Gem.configuration.last_update_check end - # checking week later is eglible again and stored + # checking week later is eligible again and stored Time.stub :now, @start_time + @week do - assert @cmd.eglible_for_update? - assert_equal Gem.configuration.last_update_check, @start_time + @week + assert_predicate @cmd, :eligible_for_update? + assert_equal @start_time + @week, Gem.configuration.last_update_check end end end - def test_eglible_for_update_prevent_config - with_eglible_environment(cmd: @cmd) do - begin - original_config, Gem.configuration[:prevent_update_suggestion] = Gem.configuration[:prevent_update_suggestion], true - refute @cmd.eglible_for_update? - ensure - Gem.configuration[:prevent_update_suggestion] = original_config - end + def test_eligible_for_update_prevent_config + with_eligible_environment(cmd: @cmd) do + original_config = Gem.configuration[:prevent_update_suggestion] + Gem.configuration[:prevent_update_suggestion] = true + refute_predicate @cmd, :eligible_for_update? + ensure + Gem.configuration[:prevent_update_suggestion] = original_config end end - def test_eglible_for_update_prevent_env - with_eglible_environment(cmd: @cmd) do - begin - original_env, ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"], "yes" - refute @cmd.eglible_for_update? - ensure - ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = original_env - end + def test_eligible_for_update_prevent_env + with_eligible_environment(cmd: @cmd) do + original_env = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] + ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = "yes" + refute_predicate @cmd, :eligible_for_update? + ensure + ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = original_env end end - def test_eglible_for_update_non_tty - with_eglible_environment(tty: false, cmd: @cmd) do - refute @cmd.eglible_for_update? + def test_eligible_for_update_non_tty + with_eligible_environment(tty: false, cmd: @cmd) do + refute_predicate @cmd, :eligible_for_update? end end - def test_eglible_for_update_for_prerelease - with_eglible_environment(rubygems_version: Gem::Version.new("1.0.0-rc1"), cmd: @cmd) do - refute @cmd.eglible_for_update? + def test_eligible_for_update_for_prerelease + with_eligible_environment(rubygems_version: Gem::Version.new("1.0.0-rc1"), cmd: @cmd) do + refute_predicate @cmd, :eligible_for_update? end end - def test_eglible_for_update_disabled_update - with_eglible_environment(cmd: @cmd) do - begin - original_disable, Gem.disable_system_update_message = Gem.disable_system_update_message, "disabled" - refute @cmd.eglible_for_update? - ensure - Gem.disable_system_update_message = original_disable - end + def test_eligible_for_update_disabled_update + with_eligible_environment(cmd: @cmd) do + original_disable = Gem.disable_system_update_message + Gem.disable_system_update_message = "disabled" + refute_predicate @cmd, :eligible_for_update? + ensure + Gem.disable_system_update_message = original_disable end end - def test_eglible_for_update_on_ci - with_eglible_environment(ci: true, cmd: @cmd) do - refute @cmd.eglible_for_update? + def test_eligible_for_update_on_ci + with_eligible_environment(ci: true, cmd: @cmd) do + refute_predicate @cmd, :eligible_for_update? end end - def test_eglible_for_update_unwrittable_config - with_eglible_environment(cmd: @cmd) do + def test_eligible_for_update_unwrittable_config + with_eligible_environment(cmd: @cmd) do Gem.configuration.stub :state_file_writable?, false do - refute @cmd.eglible_for_update? + refute_predicate @cmd, :eligible_for_update? end end end - def test_eglible_for_update_notification_delay - with_eglible_environment(cmd: @cmd) do + def test_eligible_for_update_notification_delay + with_eligible_environment(cmd: @cmd) do Gem.configuration.last_update_check = Time.now.to_i - refute @cmd.eglible_for_update? + refute_predicate @cmd, :eligible_for_update? end end end |