From e2066ab3077f1c7e32b73edb14759326e17044c2 Mon Sep 17 00:00:00 2001 From: Kaan Ozkan Date: Fri, 24 Nov 2023 14:08:02 -0500 Subject: [PATCH] Test shim annotation --- gem/test/rbi-central/runtime/context_test.rb | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gem/test/rbi-central/runtime/context_test.rb b/gem/test/rbi-central/runtime/context_test.rb index 9d53733..9e653c3 100644 --- a/gem/test/rbi-central/runtime/context_test.rb +++ b/gem/test/rbi-central/runtime/context_test.rb @@ -88,6 +88,36 @@ def baz; end ], context.run!) end + def test_shim_annotation + mock = MockGem.new(Dir.mktmpdir, "foo") + mock.gemspec!(mock.default_gemspec) + mock.write!("lib/foo.rb", <<~RB) + class Foo + def foo(*); end + end + RB + context = Context.new(mock.gem, "gem.rbi") + visitor = Runtime::Visitor.new(context) + rbi_tree = RBI::Parser.parse_string(<<~RBI) + class Foo + # @shim: some description + def foo; end + end + + # @shim: some description + class Bar + def bar; end + end + + class Baz + def baz; end + end + RBI + visitor.visit(rbi_tree) + assert_messages(["Missing runtime constant `::Baz` (defined at `-:11:0-13:3`)", + "Missing runtime constant `::Baz` (defined at `-:12:2-12:14`)"], context.run!) + end + def test_annotated_singleton_method_missing mock = MockGem.new(Dir.mktmpdir, "foo") mock.gemspec!(mock.default_gemspec)