Skip to content

Commit 57a98d3

Browse files
Add kubectl namespace flag generator tests (APP-3476) (#255)
Co-authored-by: Oz <oz-agent@warp.dev>
1 parent 776422b commit 57a98d3

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

command-signatures/src/generators/kubectl.rs

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)