From 84cf7bb292e152562204fd42caf1d71fc0f54a59 Mon Sep 17 00:00:00 2001 From: Paul Sokolik Date: Mon, 23 Feb 2026 15:04:35 -0500 Subject: [PATCH] Fix test failures on Ruby 3.3+ - Add missing require 'minitest/mock' for Minitest::Mock usage in test_declarations.rb - Replace Value.stub(:new, ...) with define_singleton_method approach since Class.stub no longer works in Ruby 3.3+ Amp-Thread-ID: https://ampcode.com/threads/T-019c8b1f-829d-70cd-83c5-3409a635e616 Co-authored-by: Amp --- test/test_css_parser_misc.rb | 8 +++++++- test/test_helper.rb | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/test/test_css_parser_misc.rb b/test/test_css_parser_misc.rb index 817c436..2362d14 100644 --- a/test/test_css_parser_misc.rb +++ b/test/test_css_parser_misc.rb @@ -229,7 +229,13 @@ def test_enumerator_nonempty def with_value_exception(&block) # Raise synthetic exception to test error handling because there is no known way to cause it naturally - CssParser::RuleSet::Declarations::Value.stub :new, -> { raise ArgumentError.new, 'stub' }, &block + original_new = CssParser::RuleSet::Declarations::Value.method(:new) + CssParser::RuleSet::Declarations::Value.define_singleton_method(:new) do |*args, **kwargs| + raise ArgumentError, 'stub' + end + yield + ensure + CssParser::RuleSet::Declarations::Value.define_singleton_method(:new, original_new) end def test_catching_argument_exceptions_for_add_rule diff --git a/test/test_helper.rb b/test/test_helper.rb index 7dd2989..a4878c7 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -2,6 +2,7 @@ require 'bundler/setup' require 'maxitest/autorun' +require 'minitest/mock' require 'net/http' require 'webrick' require 'css_parser'