@@ -15,21 +15,27 @@ def empty_binding
1515
1616 TARGET_REGEXP = /(@@|@|\$ )?[a-zA-Z_]*[!?=]?$/
1717
18- def assert_completion ( code , binding : empty_binding , include : nil , exclude : nil )
18+ def assert_completion ( code , binding : empty_binding , filename : nil , include : nil , exclude : nil )
1919 raise ArgumentError if include . nil? && exclude . nil?
20- candidates = ReplCompletion . analyze ( code , binding ) . completion_candidates
20+ candidates = ReplCompletion . analyze ( code , binding : binding , filename : filename ) . completion_candidates
2121 assert ( [ *include ] - candidates ) . empty? , "Expected #{ candidates } to include #{ include } " if include
2222 assert ( candidates & [ *exclude ] ) . empty? , "Expected #{ candidates } not to include #{ exclude } " if exclude
2323 end
2424
2525 def assert_doc_namespace ( code , namespace , binding : empty_binding )
26- assert_equal namespace , ReplCompletion . analyze ( code , binding ) . doc_namespace ( '' )
26+ assert_equal namespace , ReplCompletion . analyze ( code , binding : binding ) . doc_namespace ( '' )
2727 end
2828
2929 def test_require
3030 assert_completion ( "require '" , include : 'set' )
3131 assert_completion ( "require 's" , include : 'et' )
32- assert_completion ( "require_relative 'test_" , include : 'repl_completion' )
32+ assert_completion ( "require_relative 'test_" , filename : __FILE__ , include : 'repl_completion' )
33+ assert_completion ( "require_relative '../repl_" , filename : __FILE__ , include : 'completion/test_repl_completion' )
34+ Dir . chdir File . join ( __dir__ , '..' ) do
35+ assert_completion ( "require_relative 'repl_" , filename : nil , include : 'completion/test_repl_completion' )
36+ assert_completion ( "require_relative 'repl_" , filename : '(irb)' , include : 'completion/test_repl_completion' )
37+ end
38+
3339 # Incomplete double quote string is InterpolatedStringNode
3440 assert_completion ( 'require "' , include : 'set' )
3541 assert_completion ( 'require "s' , include : 'et' )
@@ -155,12 +161,12 @@ def test_deprecated_const_without_warning
155161 end
156162
157163 def test_sig_dir
158- assert_doc_namespace ( 'ReplCompletion.analyze(code, binding).completion_candidates.__id__' , 'Array#__id__' )
159- assert_doc_namespace ( 'ReplCompletion.analyze(code, binding).doc_namespace.__id__' , 'String#__id__' )
164+ assert_doc_namespace ( 'ReplCompletion.analyze(code, binding: binding ).completion_candidates.__id__' , 'Array#__id__' )
165+ assert_doc_namespace ( 'ReplCompletion.analyze(code, binding: binding ).doc_namespace.__id__' , 'String#__id__' )
160166 end
161167
162168 def test_none
163- result = ReplCompletion . analyze ( '()' , binding )
169+ result = ReplCompletion . analyze ( '()' , binding : binding )
164170 assert_nil result
165171 end
166172
@@ -187,15 +193,15 @@ def with_failing_method(klass, method_name, message)
187193
188194 def test_analyze_error
189195 with_failing_method ( ReplCompletion . singleton_class , :analyze_code , 'error_in_analyze_code' ) do
190- assert_nil ReplCompletion . analyze '1.' , binding
196+ assert_nil ReplCompletion . analyze ( '1.' , binding : binding )
191197 end
192198 assert_equal 'error_in_analyze_code' , ReplCompletion . last_completion_error &.message
193199 ensure
194200 ReplCompletion . instance_variable_set ( :@last_completion_error , nil )
195201 end
196202
197203 def test_completion_candidates_error
198- result = ReplCompletion . analyze '1.' , binding
204+ result = ReplCompletion . analyze '1.' , binding : binding
199205 with_failing_method ( ReplCompletion ::Types ::InstanceType , :methods , 'error_in_methods' ) do
200206 assert_equal [ ] , result . completion_candidates
201207 end
@@ -205,7 +211,7 @@ def test_completion_candidates_error
205211 end
206212
207213 def test_doc_namespace_error
208- result = ReplCompletion . analyze '1.' , binding
214+ result = ReplCompletion . analyze '1.' , binding : binding
209215 with_failing_method ( ReplCompletion ::Result , :method_doc , 'error_in_method_doc' ) do
210216 assert_nil result . doc_namespace ( 'abs' )
211217 end
0 commit comments