From 909dfdc46de30609aca2dbbcb86eae281f0fff99 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 19 Dec 2025 09:43:30 +0900 Subject: [PATCH 1/4] bundle update minitest --- Gemfile.lock | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 819c9caca..3cc80bd47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -69,7 +69,8 @@ GEM marcel (1.1.0) memory_profiler (1.1.0) mini_portile2 (2.8.9) - minitest (5.27.0) + minitest (6.0.0) + prism (~> 1.5) mutex_m (0.3.0) net-protocol (0.2.2) timeout From 9093c46dbb71d0470200d0f1c4b0d6bbcbeeefab Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 19 Dec 2025 09:46:07 +0900 Subject: [PATCH 2/4] Bundle minitest-mock --- Gemfile | 1 + Gemfile.lock | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index 929569cda..273f08b49 100644 --- a/Gemfile +++ b/Gemfile @@ -52,6 +52,7 @@ gem 'pstore' group :minitest do gem "minitest" + gem "minitest-mock" end group :typecheck_test do diff --git a/Gemfile.lock b/Gemfile.lock index 3cc80bd47..cb6e2b8ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,6 +71,7 @@ GEM mini_portile2 (2.8.9) minitest (6.0.0) prism (~> 1.5) + minitest-mock (5.27.0) mutex_m (0.3.0) net-protocol (0.2.2) timeout @@ -207,6 +208,7 @@ DEPENDENCIES json-schema memory_profiler minitest + minitest-mock mutex_m net-smtp nkf From 5e70c94b3f7776a9445f9d8429d61015bed76850 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 19 Dec 2025 10:10:46 +0900 Subject: [PATCH 3/4] Refactor type_check_test.rb Split tests for rspec and minitest. --- test/rbs/test/type_check_test.rb | 57 ++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/test/rbs/test/type_check_test.rb b/test/rbs/test/type_check_test.rb index 71fc93231..f5935149c 100644 --- a/test/rbs/test/type_check_test.rb +++ b/test/rbs/test/type_check_test.rb @@ -625,22 +625,11 @@ def test_typecheck_args end end - def test_is_double - omit unless has_gem?("rspec") - omit if skip_minitest? - + def test_is_double__rspec require "rspec/mocks/standalone" - require "minitest/mock" SignatureManager.new do |manager| manager.build do |env| - minitest_typecheck = Test::TypeCheck.new( - self_class: Integer, - builder: DefinitionBuilder.new(env: env), - sample_size: 100, - unchecked_classes: ['Minitest::Mock'] - ) - rspec_typecheck = Test::TypeCheck.new( self_class: Integer, builder: DefinitionBuilder.new(env: env), @@ -655,26 +644,50 @@ def test_is_double unchecked_classes: [] ) - minitest_mock = ::Minitest::Mock.new rspec_mock = RSPEC_MOCK[] - assert minitest_typecheck.is_double? minitest_mock assert rspec_typecheck.is_double? rspec_mock - - refute minitest_typecheck.is_double? rspec_mock - refute rspec_typecheck.is_double? minitest_mock - - refute minitest_typecheck.is_double? 1 - refute minitest_typecheck.is_double? 'hi' - refute minitest_typecheck.is_double? nil + refute no_mock_typecheck.is_double? rspec_mock refute rspec_typecheck.is_double? 1 refute rspec_typecheck.is_double? 'hi' refute rspec_typecheck.is_double? nil + end + end + end - refute no_mock_typecheck.is_double? minitest_mock + def test_is_double__minitest + # Minitest is optional dependency to make ruby-lsp-test-discovery work correctly. + # Omit this test when minitest is unavailable, or `NO_MINITEST` env var is set. + omit unless has_gem?("minitest-mock") && has_gem?("minitest") + omit if skip_minitest? + + require "minitest/mock" + + SignatureManager.new do |manager| + manager.build do |env| + minitest_typecheck = Test::TypeCheck.new( + self_class: Integer, + builder: DefinitionBuilder.new(env: env), + sample_size: 100, + unchecked_classes: ['Minitest::Mock'] + ) + + no_mock_typecheck = Test::TypeCheck.new( + self_class: Integer, + builder: DefinitionBuilder.new(env: env), + sample_size: 100, + unchecked_classes: [] + ) + + minitest_mock = ::Minitest::Mock.new + + assert minitest_typecheck.is_double? minitest_mock refute no_mock_typecheck.is_double? minitest_mock + refute minitest_typecheck.is_double? 1 + refute minitest_typecheck.is_double? 'hi' + refute minitest_typecheck.is_double? nil end end end From 0cf442cfc38cac5164599705b28a0b59f0decc79 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Fri, 19 Dec 2025 10:12:18 +0900 Subject: [PATCH 4/4] Update test for minitest/mock --- test/rbs/test/runtime_test_test.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/rbs/test/runtime_test_test.rb b/test/rbs/test/runtime_test_test.rb index 7a1807fc2..89b75f8aa 100644 --- a/test/rbs/test/runtime_test_test.rb +++ b/test/rbs/test/runtime_test_test.rb @@ -142,6 +142,7 @@ def world: () -> void end def test_minitest + omit unless has_gem?("minitest-mock") && has_gem?("minitest") omit if skip_minitest? assert_test_success(other_env: { 'RBS_TEST_TARGET' => 'Foo', 'RBS_TEST_DOUBLE_SUITE' => 'minitest' }, rbs_content: <