From 75865e8663a357f618bccfb73c3898af9a13d654 Mon Sep 17 00:00:00 2001 From: Sam Hedin Date: Fri, 10 Jul 2020 04:06:41 +0200 Subject: [PATCH] Move tests to autoenv --- .../src/env/directory_specific_environment.rs | 108 ------------------ crates/nu-cli/tests/commands/autoenv.rs | 103 +++++++++++++++++ 2 files changed, 103 insertions(+), 108 deletions(-) diff --git a/crates/nu-cli/src/env/directory_specific_environment.rs b/crates/nu-cli/src/env/directory_specific_environment.rs index 1f29328479..1f0f3662c5 100644 --- a/crates/nu-cli/src/env/directory_specific_environment.rs +++ b/crates/nu-cli/src/env/directory_specific_environment.rs @@ -236,111 +236,3 @@ impl DirectorySpecificEnvironment { Ok(()) } } - -#[cfg(test)] -mod tests { - use nu_test_support::fs::Stub::FileWithContent; - use nu_test_support::nu; - use nu_test_support::playground::Playground; - - #[test] - fn autoenv() { - Playground::setup("autoenv_test_1", |dirs, sandbox| { - sandbox.mkdir("foo/bar"); - sandbox.with_files(vec![ - FileWithContent( - ".nu-env", - r#"[env] - testkey = "testvalue" - [scriptvars] - myscript = "echo 'myval'" - - [scripts] - entryscripts = ["touch hello.txt"] - exitscripts = ["touch bye.txt"]"#, - ), - FileWithContent( - "foo/.nu-env", - r#"[env] - overwrite_me = "set_in_foo" - fookey = "fooval""#, - ), - FileWithContent( - "foo/bar/.nu-env", - r#"[env] - overwrite_me = "set_in_bar""#, - ), - ]); - - //Make sure basic keys are set - let actual = nu!( - cwd: dirs.test(), - r#"autoenv trust - echo $nu.env.testkey"# - ); - assert!(actual.out.ends_with("testvalue")); - - // Make sure script keys are set - let actual = nu!( - cwd: dirs.test(), - r#"echo $nu.env.myscript"# - ); - assert!(actual.out.ends_with("myval")); - - // Make sure entry scripts are run - let actual = nu!( - cwd: dirs.test(), - r#"ls | where name == "hello.txt" | get name"# - ); - assert!(actual.out.contains("hello.txt")); - - //Backing out of the directory should unset the keys - let actual = nu!( - cwd: dirs.test(), - r#"cd .. - echo $nu.env.testkey"# - ); - assert!(!actual.out.ends_with("testvalue")); - - // Make sure exit scripts are run - let actual = nu!( - cwd: dirs.test(), - r#"cd .. - ls | where name == "bye.txt" | get name"# - ); - assert!(actual.out.contains("bye.txt")); - - //Subdirectories should overwrite the values of parent directories. - let actual = nu!( - cwd: dirs.test(), - r#"autoenv trust foo - cd foo/bar - autoenv trust - echo $nu.env.overwrite_me"# - ); - assert!(actual.out.ends_with("set_in_bar")); - - //Variables set in parent directories should be set even if you directly cd to a subdir - let actual = nu!( - cwd: dirs.test(), - r#"autoenv trust foo - cd foo/bar - autoenv trust - echo $nu.env.fookey"# - ); - assert!(actual.out.ends_with("fooval")); - - //Make sure that overwritten values are restored. - //By deleting foo/.nu-env, we make sure that the value is actually restored and not just set again by autoenv when we re-visit foo. - let actual = nu!( - cwd: dirs.test(), - r#"cd foo - cd bar - rm ../.nu-env - cd .. - echo $nu.env.overwrite_me"# - ); - assert!(actual.out.ends_with("set_in_foo")) - }) - } -} diff --git a/crates/nu-cli/tests/commands/autoenv.rs b/crates/nu-cli/tests/commands/autoenv.rs index 8b13789179..44ea8d0d8d 100644 --- a/crates/nu-cli/tests/commands/autoenv.rs +++ b/crates/nu-cli/tests/commands/autoenv.rs @@ -1 +1,104 @@ +use nu_test_support::fs::Stub::FileWithContent; +use nu_test_support::nu; +use nu_test_support::playground::Playground; +#[test] +fn autoenv() { + Playground::setup("autoenv_test_1", |dirs, sandbox| { + sandbox.mkdir("foo/bar"); + sandbox.with_files(vec![ + FileWithContent( + ".nu-env", + r#"[env] + testkey = "testvalue" + [scriptvars] + myscript = "echo 'myval'" + + [scripts] + entryscripts = ["touch hello.txt"] + exitscripts = ["touch bye.txt"]"#, + ), + FileWithContent( + "foo/.nu-env", + r#"[env] + overwrite_me = "set_in_foo" + fookey = "fooval""#, + ), + FileWithContent( + "foo/bar/.nu-env", + r#"[env] + overwrite_me = "set_in_bar""#, + ), + ]); + + //Make sure basic keys are set + let actual = nu!( + cwd: dirs.test(), + r#"autoenv trust + echo $nu.env.testkey"# + ); + assert!(actual.out.ends_with("testvalue")); + + // Make sure script keys are set + let actual = nu!( + cwd: dirs.test(), + r#"echo $nu.env.myscript"# + ); + assert!(actual.out.ends_with("myval")); + + // Make sure entry scripts are run + let actual = nu!( + cwd: dirs.test(), + r#"ls | where name == "hello.txt" | get name"# + ); + assert!(actual.out.contains("hello.txt")); + + //Backing out of the directory should unset the keys + let actual = nu!( + cwd: dirs.test(), + r#"cd .. + echo $nu.env.testkey"# + ); + assert!(!actual.out.ends_with("testvalue")); + + // Make sure exit scripts are run + let actual = nu!( + cwd: dirs.test(), + r#"cd .. + ls | where name == "bye.txt" | get name"# + ); + assert!(actual.out.contains("bye.txt")); + + //Subdirectories should overwrite the values of parent directories. + let actual = nu!( + cwd: dirs.test(), + r#"autoenv trust foo + cd foo/bar + autoenv trust + echo $nu.env.overwrite_me"# + ); + assert!(actual.out.ends_with("set_in_bar")); + + //Variables set in parent directories should be set even if you directly cd to a subdir + let actual = nu!( + cwd: dirs.test(), + r#"autoenv trust foo + cd foo/bar + autoenv trust + echo $nu.env.fookey"# + ); + assert!(actual.out.ends_with("fooval")); + + //Make sure that overwritten values are restored. + //By deleting foo/.nu-env, we make sure that the value is actually restored and not just set again by autoenv when we re-visit foo. + let actual = nu!( + cwd: dirs.test(), + r#"cd foo + cd bar + rm ../.nu-env + cd .. + echo $nu.env.overwrite_me"# + ); + assert!(actual.out.ends_with("set_in_foo")) + }) +}