mod helpers; use helpers as h; use helpers::{Playground, Stub::*}; use std::path::PathBuf; #[test] fn has_default_configuration_file() { let expected = "config.toml"; Playground::setup("config_test_1", |dirs, _| { nu!(cwd: dirs.root(), "config"); assert_eq!( dirs.config_path().join(expected), nu::config_path().unwrap().join(expected) ); }) } #[test] fn shows_path_of_configuration_file() { let expected = "config.toml"; Playground::setup("config_test_2", |dirs, _| { let actual = nu!( cwd: dirs.test(), "config --path | echo $it" ); assert_eq!(PathBuf::from(actual), dirs.config_path().join(expected)); }); } #[test] fn use_different_configuration() { Playground::setup("config_test_3", |dirs, sandbox| { sandbox.with_files(vec![FileWithContent( "test_3.toml", r#" caballero_1 = "Andrés N. Robalino" caballero_2 = "Jonathan Turner" caballero_3 = "Yehuda katz" "#, )]); let actual = nu!( cwd: dirs.root(), "config --get caballero_1 --load {}/test_3.toml | echo $it", dirs.test() ); assert_eq!(actual, "Andrés N. Robalino"); }); h::delete_file_at(nu::config_path().unwrap().join("test_3.toml")); } #[test] fn sets_configuration_value() { Playground::setup("config_test_4", |dirs, sandbox| { sandbox.with_files(vec![FileWithContent( "test_4.toml", r#" caballero_1 = "Andrés N. Robalino" caballero_2 = "Jonathan Turner" caballero_3 = "Yehuda katz" "#, )]); nu!( cwd: dirs.test(), "config --load test_4.toml --set [caballero_4 jonas]" ); let actual = nu!( cwd: dirs.root(), r#"open "{}/test_4.toml" | get caballero_4 | echo $it"#, dirs.config_path() ); assert_eq!(actual, "jonas"); }); h::delete_file_at(nu::config_path().unwrap().join("test_4.toml")); } // #[test] // fn removes_configuration_value() { // Playground::setup("config_test_5", |dirs, sandbox| { // sandbox.with_files(vec![FileWithContent( // "test_5.toml", // r#" // caballeros = [1, 1, 1] // podershell = [1, 1, 1] // "#, // )]); // nu!( // cwd: dirs.test(), // "config --load test_5.toml --remove podershell" // ); // let actual = nu_error!( // cwd: dirs.root(), // r#"open "{}/test_5.toml" | get podershell | echo $it"#, // dirs.config_path() // ); // assert!(actual.contains("Unknown column")); // }); // h::delete_file_at(nu::config_path().unwrap().join("test_5.toml")); // }