@@ -232,6 +232,56 @@ testMe.complete('require(\'n', common.mustCall(function(error, data) {
232232 } ) ) ;
233233}
234234
235+ // Test tab completion for require() relative to the current directory
236+ {
237+ putIn . run ( [ '.clear' ] ) ;
238+
239+ const cwd = process . cwd ( ) ;
240+ process . chdir ( __dirname ) ;
241+
242+ [ 'require(\'.' , 'require(".' ] . forEach ( ( input ) => {
243+ testMe . complete ( input , common . mustCall ( ( err , data ) => {
244+ assert . strictEqual ( err , null ) ;
245+ assert . strictEqual ( data . length , 2 ) ;
246+ assert . strictEqual ( data [ 1 ] , '.' ) ;
247+ assert . strictEqual ( data [ 0 ] . length , 2 ) ;
248+ assert . ok ( data [ 0 ] . includes ( './' ) ) ;
249+ assert . ok ( data [ 0 ] . includes ( '../' ) ) ;
250+ } ) ) ;
251+ } ) ;
252+
253+ [ 'require(\'..' , 'require("..' ] . forEach ( ( input ) => {
254+ testMe . complete ( input , common . mustCall ( ( err , data ) => {
255+ assert . strictEqual ( err , null ) ;
256+ assert . deepStrictEqual ( data , [ [ '../' ] , '..' ] ) ;
257+ } ) ) ;
258+ } ) ;
259+
260+ [ './' , './test-' ] . forEach ( ( path ) => {
261+ [ `require('${ path } ` , `require("${ path } ` ] . forEach ( ( input ) => {
262+ testMe . complete ( input , common . mustCall ( ( err , data ) => {
263+ assert . strictEqual ( err , null ) ;
264+ assert . strictEqual ( data . length , 2 ) ;
265+ assert . strictEqual ( data [ 1 ] , path ) ;
266+ assert . ok ( data [ 0 ] . includes ( './test-repl-tab-complete' ) ) ;
267+ } ) ) ;
268+ } ) ;
269+ } ) ;
270+
271+ [ '../parallel/' , '../parallel/test-' ] . forEach ( ( path ) => {
272+ [ `require('${ path } ` , `require("${ path } ` ] . forEach ( ( input ) => {
273+ testMe . complete ( input , common . mustCall ( ( err , data ) => {
274+ assert . strictEqual ( err , null ) ;
275+ assert . strictEqual ( data . length , 2 ) ;
276+ assert . strictEqual ( data [ 1 ] , path ) ;
277+ assert . ok ( data [ 0 ] . includes ( '../parallel/test-repl-tab-complete' ) ) ;
278+ } ) ) ;
279+ } ) ;
280+ } ) ;
281+
282+ process . chdir ( cwd ) ;
283+ }
284+
235285// Make sure tab completion works on context properties
236286putIn . run ( [ '.clear' ] ) ;
237287
0 commit comments