@@ -358,4 +358,92 @@ mod tests {
358358 assert_eq ! ( env_var_value( & env_vars, "FOO" ) , Some ( "bar" ) ) ;
359359 assert_eq ! ( env_var_value( & env_vars, "MISSING" ) , None ) ;
360360 }
361+
362+ #[ test]
363+ fn test_namespace_short_flag_before_subcommand ( ) {
364+ let env_vars = vec ! [ ] ;
365+ let tokens = vec ! [ "kubectl" , "-n" , "kube-system" , "get" , "pods" ] ;
366+ let cmd = kubectl_script (
367+ & env_vars,
368+ & tokens,
369+ CommandBuilder :: single_command ( "get pods -o custom-columns=:.metadata.name" ) ,
370+ ) ;
371+ let built = cmd. build ( Shell :: Posix ) ;
372+ assert ! (
373+ built. contains( "--namespace=kube-system" ) ,
374+ "Expected --namespace=kube-system from -n flag before subcommand, got: {built}"
375+ ) ;
376+ }
377+
378+ #[ test]
379+ fn test_namespace_long_flag_before_subcommand ( ) {
380+ let env_vars = vec ! [ ] ;
381+ let tokens = vec ! [ "kubectl" , "--namespace" , "kube-system" , "get" , "pods" ] ;
382+ let cmd = kubectl_script (
383+ & env_vars,
384+ & tokens,
385+ CommandBuilder :: single_command ( "get pods -o custom-columns=:.metadata.name" ) ,
386+ ) ;
387+ let built = cmd. build ( Shell :: Posix ) ;
388+ assert ! (
389+ built. contains( "--namespace=kube-system" ) ,
390+ "Expected --namespace=kube-system from --namespace flag before subcommand, got: {built}"
391+ ) ;
392+ }
393+
394+ #[ test]
395+ fn test_namespace_flag_after_subcommand ( ) {
396+ let env_vars = vec ! [ ] ;
397+ let tokens = vec ! [ "kubectl" , "get" , "-n" , "kube-system" , "pods" ] ;
398+ let cmd = kubectl_script (
399+ & env_vars,
400+ & tokens,
401+ CommandBuilder :: single_command ( "get pods -o custom-columns=:.metadata.name" ) ,
402+ ) ;
403+ let built = cmd. build ( Shell :: Posix ) ;
404+ assert ! (
405+ built. contains( "--namespace=kube-system" ) ,
406+ "Expected --namespace=kube-system from -n flag after subcommand, got: {built}"
407+ ) ;
408+ }
409+
410+ #[ test]
411+ fn test_context_and_namespace_flags_before_subcommand ( ) {
412+ let env_vars = vec ! [ ] ;
413+ let tokens = vec ! [
414+ "kubectl" ,
415+ "--context" ,
416+ "staging-cluster" ,
417+ "-n" ,
418+ "project1" ,
419+ "get" ,
420+ "pods" ,
421+ ] ;
422+ let cmd = kubectl_script (
423+ & env_vars,
424+ & tokens,
425+ CommandBuilder :: single_command ( "get pods -o custom-columns=:.metadata.name" ) ,
426+ ) ;
427+ let built = cmd. build ( Shell :: Posix ) ;
428+ assert ! (
429+ built. contains( "--namespace=project1" ) ,
430+ "Expected --namespace=project1, got: {built}"
431+ ) ;
432+ }
433+
434+ #[ test]
435+ fn test_namespace_equals_syntax ( ) {
436+ let env_vars = vec ! [ ] ;
437+ let tokens = vec ! [ "kubectl" , "--namespace=kube-system" , "get" , "pods" ] ;
438+ let cmd = kubectl_script (
439+ & env_vars,
440+ & tokens,
441+ CommandBuilder :: single_command ( "get pods -o custom-columns=:.metadata.name" ) ,
442+ ) ;
443+ let built = cmd. build ( Shell :: Posix ) ;
444+ assert ! (
445+ built. contains( "--namespace=kube-system" ) ,
446+ "Expected --namespace=kube-system from equals syntax, got: {built}"
447+ ) ;
448+ }
361449}
0 commit comments