nushell/crates/nu-command/tests/commands/error_make.rs
Andrej Kolchin 1a864ea6f4
Refactor error make (#10923)
- Replaced `start`/`end` with span.
- Fixed standard library.
- Add `help` option.
- Add a couple more errors for invalid record types.

Resolve #10914


# Description



# User-Facing Changes

- **BREAKING CHANGE:** `error make` now takes in `span` instead of
`start`/`end`:

  ```Nushell
  error make {
      msg: "Message"
      label: {
          text: "Label text"
          span: (metadata $var).span
      }
  }
  ```
- `error make` now has a `help` argument for custom error help.
2023-11-03 10:09:33 -05:00

42 lines
948 B
Rust

use nu_test_support::nu;
#[test]
fn error_label_works() {
let actual = nu!("error make {msg:foo label:{text:unseen}}");
assert!(actual.err.contains("unseen"));
assert!(actual.err.contains("╰──"));
}
#[test]
fn no_span_if_unspanned() {
let actual = nu!("error make -u {msg:foo label:{text:unseen}}");
assert!(!actual.err.contains("unseen"));
}
#[test]
fn error_start_bigger_than_end_should_fail() {
let actual = nu!("
error make {
msg: foo
label: {
text: bar
span: {start: 456 end: 123}
}
}
");
assert!(!actual.err.contains("invalid error format"));
assert!(!actual
.err
.contains("`$.label.start` should be smaller than `$.label.end`"));
}
#[test]
fn check_help_line() {
let actual = nu!("error make {msg:foo help: `Custom help line`}");
assert!(actual.err.contains("Custom help line"));
}