nushell/src/tests
Wind 387328fe73
Glob: don't allow implicit casting between glob and string (#11992)
# Description
As title, currently on latest main, nushell confused user if it allows
implicit casting between glob and string:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test $x
```
It always expand the glob although `$x` is defined as a string.
This pr implements a solution from @kubouch :
> We could make it really strict and disallow all autocasting between
globs and strings because that's what's causing the "magic" confusion.
Then, modify all builtins that accept globs to accept oneof(glob,
string) and the rules would be that globs always expand and strings
never expand

# User-Facing Changes
After this pr, user needs to use `into glob` to invoke `glob-test`, if
user pass a string variable:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test ($x | into glob)
```
Or else nushell will return an error.
```
 3 │ glob-test $x
   ·           ─┬
   ·            ╰── can't convert string to glob
```

# Tests + Formatting
Done

# After Submitting
Nan
2024-02-28 23:05:35 +08:00
..
test_bits.rs add binary data handling to bits commands (#11854) 2024-02-28 20:43:50 +08:00
test_cell_path.rs remove the $nothing variable (#10478) 2023-09-26 18:49:28 +02:00
test_commandline.rs separate commandline into subcommands (#11877) 2024-02-18 16:15:59 -06:00
test_conditionals.rs Add OneOf shape to fix else (#7385) 2022-12-08 08:58:54 +13:00
test_config_path.rs Add ConfigDirNotFound error (#11849) 2024-02-26 15:42:20 +08:00
test_config.rs Allow plugins to receive configuration from the nushell configuration (#10955) 2024-01-15 16:59:47 +08:00
test_converters.rs Fix to json escape logic (#4478) 2022-02-15 06:55:57 -05:00
test_custom_commands.rs Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
test_engine.rs Add long options for filters (#10641) 2023-10-08 13:12:46 +02:00
test_env.rs Remove the 'env' command, as we have the variable (#8185) 2023-03-01 21:20:00 +13:00
test_help.rs Add long options for filters (#10641) 2023-10-08 13:12:46 +02:00
test_hiding.rs remove let-env, focus on mutating $env (#9574) 2023-07-01 07:57:51 +12:00
test_ide.rs limit the ide-check error amount (#8875) 2023-04-13 12:53:18 -05:00
test_iteration.rs Remove deprecated --numbered flag from four commands (#7777) 2023-02-02 16:59:58 -06:00
test_known_external.rs Allow spreading arguments to commands (#11289) 2023-12-28 15:43:20 +08:00
test_math.rs Fix precedence of 'not' operator (#11672) 2024-01-29 21:42:27 +02:00
test_modules.rs Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
test_parser.rs Tighten def body parsing (#11719) 2024-02-03 13:20:40 +02:00
test_ranges.rs improve operation mismatch errors (#8800) 2023-04-08 09:32:44 +12:00
test_regex.rs improve operation mismatch errors (#8800) 2023-04-08 09:32:44 +12:00
test_signatures.rs allow tables to have annotations (#9613) 2023-07-07 11:06:09 +02:00
test_spread.rs Disallow spreading lists automatically when calling externals (#11857) 2024-02-14 18:16:19 -05:00
test_stdlib.rs split $nu variable into scope commands and simpler $nu (#9487) 2023-06-21 09:33:01 +12:00
test_strings.rs improve operation mismatch errors (#8800) 2023-04-08 09:32:44 +12:00
test_table_operations.rs Disallow duplicated columns in table literals (#10875) 2023-11-01 21:25:35 +01:00
test_type_check.rs add type check during eval time (#11475) 2024-01-12 23:48:53 +08:00