mirror of
https://github.com/nushell/nushell.git
synced 2025-08-16 02:38:37 +02:00
Allow main command to define top-level module command (#7764)
This commit is contained in:
@ -3,17 +3,14 @@ use crate::tests::{fail_test, run_test, TestResult};
|
||||
// TODO: Test the use/hide tests also as separate lines in REPL (i.e., with merging the delta in between)
|
||||
#[test]
|
||||
fn hides_def() -> TestResult {
|
||||
fail_test(
|
||||
r#"def foo [] { "foo" }; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
)
|
||||
fail_test(r#"def foo [] { "foo" }; hide foo; foo"#, "external_command")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hides_alias() -> TestResult {
|
||||
fail_test(
|
||||
r#"alias foo = echo "foo"; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -52,7 +49,7 @@ fn hides_env_then_redefines() -> TestResult {
|
||||
fn hides_def_in_scope_1() -> TestResult {
|
||||
fail_test(
|
||||
r#"def foo [] { "foo" }; do { hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -68,7 +65,7 @@ fn hides_def_in_scope_2() -> TestResult {
|
||||
fn hides_def_in_scope_3() -> TestResult {
|
||||
fail_test(
|
||||
r#"def foo [] { "foo" }; do { hide foo; def foo [] { "bar" }; hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -76,7 +73,7 @@ fn hides_def_in_scope_3() -> TestResult {
|
||||
fn hides_def_in_scope_4() -> TestResult {
|
||||
fail_test(
|
||||
r#"def foo [] { "foo" }; do { def foo [] { "bar" }; hide foo; hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -84,7 +81,7 @@ fn hides_def_in_scope_4() -> TestResult {
|
||||
fn hides_alias_in_scope_1() -> TestResult {
|
||||
fail_test(
|
||||
r#"alias foo = echo "foo"; do { hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -100,7 +97,7 @@ fn hides_alias_in_scope_2() -> TestResult {
|
||||
fn hides_alias_in_scope_3() -> TestResult {
|
||||
fail_test(
|
||||
r#"alias foo = echo "foo"; do { hide foo; alias foo = echo "bar"; hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -108,7 +105,7 @@ fn hides_alias_in_scope_3() -> TestResult {
|
||||
fn hides_alias_in_scope_4() -> TestResult {
|
||||
fail_test(
|
||||
r#"alias foo = echo "foo"; do { alias foo = echo "bar"; hide foo; hide foo; foo }"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -213,7 +210,7 @@ fn hides_alias_runs_def_2() -> TestResult {
|
||||
fn hides_alias_and_def() -> TestResult {
|
||||
fail_test(
|
||||
r#"alias foo = echo "foo"; def foo [] { "bar" }; hide foo; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -221,7 +218,7 @@ fn hides_alias_and_def() -> TestResult {
|
||||
fn hides_def_import_1() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam; hide spam foo; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -229,7 +226,7 @@ fn hides_def_import_1() -> TestResult {
|
||||
fn hides_def_import_2() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam; hide spam; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -237,7 +234,7 @@ fn hides_def_import_2() -> TestResult {
|
||||
fn hides_def_import_3() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam; hide spam [foo]; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -245,7 +242,7 @@ fn hides_def_import_3() -> TestResult {
|
||||
fn hides_def_import_4() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam foo; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -253,7 +250,7 @@ fn hides_def_import_4() -> TestResult {
|
||||
fn hides_def_import_5() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam *; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -261,7 +258,7 @@ fn hides_def_import_5() -> TestResult {
|
||||
fn hides_def_import_6() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "foo" } }; use spam *; hide spam *; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -277,7 +274,7 @@ fn hides_def_import_then_reimports() -> TestResult {
|
||||
fn hides_alias_import_1() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam; hide spam foo; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -285,7 +282,7 @@ fn hides_alias_import_1() -> TestResult {
|
||||
fn hides_alias_import_2() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam; hide spam; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -293,7 +290,7 @@ fn hides_alias_import_2() -> TestResult {
|
||||
fn hides_alias_import_3() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam; hide spam [foo]; spam foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -301,7 +298,7 @@ fn hides_alias_import_3() -> TestResult {
|
||||
fn hides_alias_import_4() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam foo; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -309,7 +306,7 @@ fn hides_alias_import_4() -> TestResult {
|
||||
fn hides_alias_import_5() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam *; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -317,7 +314,7 @@ fn hides_alias_import_5() -> TestResult {
|
||||
fn hides_alias_import_6() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export alias foo = "foo" }; use spam *; hide spam *; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -338,7 +335,6 @@ fn hides_env_import_1() -> TestResult {
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "Re-enable after virtualenv update"]
|
||||
fn hides_def_runs_env_import() -> TestResult {
|
||||
run_test(
|
||||
r#"module spam { export-env { let-env foo = "foo" }; export def foo [] { "bar" } }; use spam foo; hide foo; $env.foo"#,
|
||||
@ -390,7 +386,7 @@ fn hide_shadowed_env() -> TestResult {
|
||||
fn hides_all_decls_within_scope() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def foo [] { "bar" } }; def foo [] { "foo" }; use spam foo; hide foo; foo"#,
|
||||
"", // we just care if it errors
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
@ -401,3 +397,35 @@ fn hides_all_envs_within_scope() -> TestResult {
|
||||
"",
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hides_main_import_1() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def main [] { "foo" } }; use spam; hide spam; spam"#,
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hides_main_import_2() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def main [] { "foo" } }; use spam; hide spam main; spam"#,
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hides_main_import_3() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def main [] { "foo" } }; use spam; hide spam [ main ]; spam"#,
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn hides_main_import_4() -> TestResult {
|
||||
fail_test(
|
||||
r#"module spam { export def main [] { "foo" } }; use spam; hide spam *; spam"#,
|
||||
"external_command",
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user