forked from nushell/nushell
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# Description This now works: ``` try { 'x' | math abs } catch { $in } ``` # User-Facing Changes See above. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date.
- Loading branch information
1 parent
216d7d0
commit 9d1cb1b
Showing
2 changed files
with
47 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,51 @@ | ||
use nu_test_support::nu; | ||
use nu_test_support::playground::Playground; | ||
|
||
#[test] | ||
fn try_succeed() { | ||
Playground::setup("try_succeed_test", |dirs, _sandbox| { | ||
let output = nu!( | ||
cwd: dirs.test(), | ||
"try { 345 } catch { echo 'hello' }" | ||
); | ||
|
||
assert!(output.out.contains("345")); | ||
}) | ||
let output = nu!( | ||
cwd: ".", | ||
"try { 345 } catch { echo 'hello' }" | ||
); | ||
|
||
assert!(output.out.contains("345")); | ||
} | ||
|
||
#[test] | ||
fn try_catch() { | ||
Playground::setup("try_catch_test", |dirs, _sandbox| { | ||
let output = nu!( | ||
cwd: dirs.test(), | ||
"try { foobarbaz } catch { echo 'hello' }" | ||
); | ||
|
||
assert!(output.out.contains("hello")); | ||
}) | ||
let output = nu!( | ||
cwd: ".", | ||
"try { foobarbaz } catch { echo 'hello' }" | ||
); | ||
|
||
assert!(output.out.contains("hello")); | ||
} | ||
|
||
#[test] | ||
fn catch_can_access_error() { | ||
Playground::setup("try_catch_test", |dirs, _sandbox| { | ||
let output = nu!( | ||
cwd: dirs.test(), | ||
"try { foobarbaz } catch { |err| $err }" | ||
); | ||
|
||
assert!(output.err.contains("External command failed")); | ||
}) | ||
let output = nu!( | ||
cwd: ".", | ||
"try { foobarbaz } catch { |err| $err }" | ||
); | ||
|
||
assert!(output.err.contains("External command failed")); | ||
} | ||
|
||
#[test] | ||
fn catch_can_access_error_as_dollar_in() { | ||
let output = nu!( | ||
cwd: ".", | ||
"try { foobarbaz } catch { $in }" | ||
); | ||
|
||
assert!(output.err.contains("External command failed")); | ||
} | ||
|
||
#[test] | ||
fn external_failed_should_be_catched() { | ||
Playground::setup("try_catch_test", |dirs, _sandbox| { | ||
let output = nu!( | ||
cwd: dirs.test(), | ||
"try { nu --testbin fail; echo 'success' } catch { echo 'fail' }" | ||
); | ||
|
||
assert!(output.out.contains("fail")); | ||
}) | ||
let output = nu!( | ||
cwd: ".", | ||
"try { nu --testbin fail; echo 'success' } catch { echo 'fail' }" | ||
); | ||
|
||
assert!(output.out.contains("fail")); | ||
} |