nushell/crates/nu-command/tests/commands/config.rs
Leonhard Kipp ac070ae942
Refactor/config commands (#3265)
* Use ctx.configs in all config commands

* Remove all setting/accessing of  vars.("config-path")

* Add tests

* Add comment

* Reload cfg on remove

* Hypocratic ws change

* Use history_path in hist_or_default

* Make clippy happy

* Fix rebase stuff

* Fix clippy lint
2021-04-09 18:03:12 +12:00

139 lines
3.9 KiB
Rust

use nu_test_support::fs::AbsolutePath;
use nu_test_support::fs::Stub::FileWithContent;
use nu_test_support::playground::{says, Playground};
use hamcrest2::assert_that;
use hamcrest2::prelude::*;
#[test]
fn clearing_config_clears_config() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
skip_welcome_message = true
"#,
)]);
assert_that!(
nu.pipeline("config clear; config get skip_welcome_message"),
says().to_stdout("")
);
let config_contents = std::fs::read_to_string(file).expect("Could not read file");
assert!(config_contents.is_empty());
});
}
#[test]
fn config_get_returns_value() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
skip_welcome_message = true
"#,
)]);
assert_that!(
//Clears config
nu.pipeline("config get skip_welcome_message"),
says().to_stdout("true")
);
});
}
#[test]
fn config_set_sets_value() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
skip_welcome_message = true
"#,
)]);
assert_that!(
//Clears config
nu.pipeline("config set key value; config get key"),
says().to_stdout("value")
);
let config_contents = std::fs::read_to_string(file).expect("Could not read file");
assert!(config_contents.contains("key = \"value\""));
});
}
#[test]
fn config_set_into_sets_value() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
skip_welcome_message = true
"#,
)]);
assert_that!(
//Clears config
nu.pipeline("echo value | config set_into key; config get key"),
says().to_stdout("value")
);
let config_contents = std::fs::read_to_string(file).expect("Could not read file");
assert!(config_contents.contains("key = \"value\""));
});
}
#[test]
fn config_rm_removes_value() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
key = "value"
skip_welcome_message = true
"#,
)]);
assert_that!(
nu.pipeline("config remove key; config get key"),
says().to_stdout("")
);
let config_contents = std::fs::read_to_string(file).expect("Could not read file");
assert!(!config_contents.contains("key = \"value\""));
});
}
#[test]
fn config_path_returns_correct_path() {
Playground::setup("environment_syncing_test_1", |dirs, nu| {
let file = AbsolutePath::new(dirs.test().join("config.toml"));
nu.with_config(&file);
nu.with_files(vec![FileWithContent(
"config.toml",
r#"
skip_welcome_message = true
"#,
)]);
assert_that!(
nu.pipeline("config path"),
says().to_stdout(&file.inner.to_string_lossy().to_string())
);
});
}