nushell/tests
Douglas 8c1ab7e0a3
Add proper config defaults for hooks (#14341)
# Release Notes Excerpt

* Hooks now default to an empty value of the proper type (e.g., `[]` or
`{}`) when not otherwise specified

# Description

```nushell
# Start with no config
nu -n
# Populate with defaults
$env.config = {}
$env.config.hooks
```

* Before: All hooks other than `display_output` were set to `null`.
Attempting to append a hook using `++=` would fail unless it had already
been assigned.
* After:
* `pre_prompt`, `pre_execution`, and `command_not_found` are set to
empty lists. This allows the user to simply append new hooks using
`++=`.
* `env_change` is set to an empty record. This allows the user to add
new hooks using `merge`, although a "helper" command would still be
useful (TODO: stdlib).

Also fixed a typo in an error message.

# User-Facing Changes

There shouldn't be any breaking changes since (before) there were no
guarantees of the hook's value/type. Previously, users would have to
check for `null` and `default` to an empty list before appending. Any
user-strategies for dealing with the problem should continue to work
after this change.

# Tests + Formatting

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

Note that, for reasons I cannot ascertain, this PR appears to have
*fixed* the `command_not_found_error_recognizes_non_executable_file`
test that was previously broken by #12953. That PR essentially rewrote
the test to match the new behavior, but it no longer tested what it was
intended to test.

Now, the test is working again as designed (and as it works in the
REPL).

# After Submitting

This will be covered in the Configuration update for #14249. This PR
will simplify several examples in the doc.
2024-11-14 20:27:26 -08:00
..
assets/nu_json Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00
const_ use command: Don't create a variable with empty record if it doesn't define any constants (#14051) 2024-10-20 23:12:57 +02:00
eval Remove the NU_DISABLE_IR option (#14293) 2024-11-15 12:09:25 +08:00
fixtures Fix LSP non-ascii characters offset issues. (#14002) 2024-10-29 06:35:37 -05:00
hooks Refactor config updates (#13802) 2024-10-11 18:40:32 +02:00
modules don't include import path in args to aliased external commands (#14231) 2024-11-06 07:40:29 -06:00
overlays Avoid taking unnecessary ownership of intermediates (#12740) 2024-05-04 00:53:15 +00:00
parsing Avoid taking unnecessary ownership of intermediates (#12740) 2024-05-04 00:53:15 +00:00
path Avoid taking unnecessary ownership of intermediates (#12740) 2024-05-04 00:53:15 +00:00
plugin_persistence Make plugin list read state from plugin registry file as well (#14085) 2024-10-20 23:12:57 +02:00
plugins Make plugin list read state from plugin registry file as well (#14085) 2024-10-20 23:12:57 +02:00
repl Allow duration to be added to date (#14295) 2024-11-14 10:07:37 +01:00
scope Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
shell Add proper config defaults for hooks (#14341) 2024-11-14 20:27:26 -08:00
main.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00