change display_error.exit_code to false (#13873)

The idea comes from @amtoine, I think it would be good to keey
`display_error.exit_code` same value, if user is using default config or
using no config file at all.
This commit is contained in:
Wind 2024-10-14 22:57:30 +08:00 committed by GitHub
parent a0f38f8845
commit 639bd4fc2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 9 deletions

View File

@ -9,25 +9,28 @@ fn capture_errors_works() {
assert!(actual.err.contains("column_not_found")); assert!(actual.err.contains("column_not_found"));
} }
// TODO: need to add tests under display_error.exit_code = true
#[test] #[test]
fn capture_errors_works_for_external() { fn capture_errors_works_for_external() {
let actual = nu!("do -c {nu --testbin fail}"); let actual = nu!("do -c {nu --testbin fail}");
assert!(actual.err.contains("exited with code")); assert!(!actual.status.success());
assert_eq!(actual.out, ""); assert!(!actual.err.contains("exited with code"));
} }
// TODO: need to add tests under display_error.exit_code = true
#[test] #[test]
fn capture_errors_works_for_external_with_pipeline() { fn capture_errors_works_for_external_with_pipeline() {
let actual = nu!("do -c {nu --testbin fail} | echo `text`"); let actual = nu!("do -c {nu --testbin fail} | echo `text`");
assert!(actual.err.contains("exited with code")); assert!(!actual.status.success());
assert_eq!(actual.out, ""); assert!(!actual.err.contains("exited with code"));
} }
// TODO: need to add tests under display_error.exit_code = true
#[test] #[test]
fn capture_errors_works_for_external_with_semicolon() { fn capture_errors_works_for_external_with_semicolon() {
let actual = nu!(r#"do -c {nu --testbin fail}; echo `text`"#); let actual = nu!(r#"do -c {nu --testbin fail}; echo `text`"#);
assert!(actual.err.contains("exited with code")); assert!(!actual.status.success());
assert_eq!(actual.out, ""); assert!(!actual.err.contains("exited with code"));
} }
#[test] #[test]

View File

@ -22,7 +22,7 @@ impl DisplayErrors {
impl Default for DisplayErrors { impl Default for DisplayErrors {
fn default() -> Self { fn default() -> Self {
Self { Self {
exit_code: true, exit_code: false,
termination_signal: true, termination_signal: true,
} }
} }

View File

@ -627,16 +627,18 @@ fn exit_code_stops_execution_closure() {
assert!(actual.err.contains("exited with code 1")); assert!(actual.err.contains("exited with code 1"));
} }
// TODO: need to add tests under display_error.exit_code = true
#[test] #[test]
fn exit_code_stops_execution_custom_command() { fn exit_code_stops_execution_custom_command() {
let actual = nu!("def cmd [] { nu -c 'exit 42'; 'ok1' }; cmd; print 'ok2'"); let actual = nu!("def cmd [] { nu -c 'exit 42'; 'ok1' }; cmd; print 'ok2'");
assert!(actual.out.is_empty()); assert!(actual.out.is_empty());
assert!(actual.err.contains("exited with code 42")); assert!(!actual.err.contains("exited with code 42"));
} }
// TODO: need to add tests under display_error.exit_code = true
#[test] #[test]
fn exit_code_stops_execution_for_loop() { fn exit_code_stops_execution_for_loop() {
let actual = nu!("for x in [0 1] { nu -c 'exit 42'; print $x }"); let actual = nu!("for x in [0 1] { nu -c 'exit 42'; print $x }");
assert!(actual.out.is_empty()); assert!(actual.out.is_empty());
assert!(actual.err.contains("exited with code 42")); assert!(!actual.err.contains("exited with code 42"));
} }