@@ -11,12 +11,12 @@ use nu_engine::eval_block;
1111use nu_parser:: parse;
1212use nu_path:: expand_tilde;
1313use nu_protocol:: { debugger:: WithoutDebug , engine:: StateWorkingSet , PipelineData } ;
14- #[ cfg( not( windows) ) ]
15- use nu_protocol:: { Span , Value } ;
1614use reedline:: { Completer , Suggestion } ;
1715use rstest:: { fixture, rstest} ;
1816use support:: {
19- completions_helpers:: { new_dotnu_engine, new_partial_engine, new_quote_engine} ,
17+ completions_helpers:: {
18+ new_dotnu_engine, new_external_engine, new_partial_engine, new_quote_engine,
19+ } ,
2020 file, folder, match_suggestions, new_engine,
2121} ;
2222
@@ -347,47 +347,37 @@ fn custom_arguments_vs_subcommands() {
347347
348348/// External command only if starts with `^`
349349#[ test]
350- #[ cfg( not( windows) ) ]
351350fn external_commands_only ( ) {
352- let ( _, _, mut engine, stack) = new_engine ( ) ;
353- engine. add_env_var (
354- "PATH" . into ( ) ,
355- Value :: List {
356- vals : vec ! [ Value :: String {
357- val: "/bin/" . into( ) ,
358- internal_span: Span :: unknown( ) ,
359- } ] ,
360- internal_span : Span :: unknown ( ) ,
361- } ,
351+ let engine = new_external_engine ( ) ;
352+ let mut completer = NuCompleter :: new (
353+ Arc :: new ( engine) ,
354+ Arc :: new ( nu_protocol:: engine:: Stack :: new ( ) ) ,
362355 ) ;
363- let mut completer = NuCompleter :: new ( Arc :: new ( engine) , Arc :: new ( stack) ) ;
364356 let completion_str = "^sleep" ;
365357 let suggestions = completer. complete ( completion_str, completion_str. len ( ) ) ;
358+ #[ cfg( windows) ]
359+ let expected: Vec < String > = vec ! [ "sleep.exe" . into( ) ] ;
360+ #[ cfg( not( windows) ) ]
366361 let expected: Vec < String > = vec ! [ "sleep" . into( ) ] ;
367362 match_suggestions ( & expected, & suggestions) ;
368363
369364 let completion_str = "sleep" ;
370365 let suggestions = completer. complete ( completion_str, completion_str. len ( ) ) ;
366+ #[ cfg( windows) ]
367+ let expected: Vec < String > = vec ! [ "sleep" . into( ) , "sleep.exe" . into( ) ] ;
368+ #[ cfg( not( windows) ) ]
371369 let expected: Vec < String > = vec ! [ "sleep" . into( ) , "^sleep" . into( ) ] ;
372370 match_suggestions ( & expected, & suggestions) ;
373371}
374372
375373/// Which completes both internals and externals
376374#[ test]
377- #[ cfg( not( windows) ) ]
378375fn which_command_completions ( ) {
379- let ( _, _, mut engine, stack) = new_engine ( ) ;
380- engine. add_env_var (
381- "PATH" . into ( ) ,
382- Value :: List {
383- vals : vec ! [ Value :: String {
384- val: "/bin/" . into( ) ,
385- internal_span: Span :: unknown( ) ,
386- } ] ,
387- internal_span : Span :: unknown ( ) ,
388- } ,
376+ let engine = new_external_engine ( ) ;
377+ let mut completer = NuCompleter :: new (
378+ Arc :: new ( engine) ,
379+ Arc :: new ( nu_protocol:: engine:: Stack :: new ( ) ) ,
389380 ) ;
390- let mut completer = NuCompleter :: new ( Arc :: new ( engine) , Arc :: new ( stack) ) ;
391381 // flags
392382 let completion_str = "which --all" ;
393383 let suggestions = completer. complete ( completion_str, completion_str. len ( ) ) ;
@@ -396,6 +386,9 @@ fn which_command_completions() {
396386 // commands
397387 let completion_str = "which sleep" ;
398388 let suggestions = completer. complete ( completion_str, completion_str. len ( ) ) ;
389+ #[ cfg( windows) ]
390+ let expected: Vec < String > = vec ! [ "sleep" . into( ) , "sleep.exe" . into( ) ] ;
391+ #[ cfg( not( windows) ) ]
399392 let expected: Vec < String > = vec ! [ "sleep" . into( ) , "^sleep" . into( ) ] ;
400393 match_suggestions ( & expected, & suggestions) ;
401394}
0 commit comments