use std::env; mod util; use util::var; #[test] fn load_buf_example() { let dotenv = "FOO = bar \nD\n\n# comment\nBOP = b a z".as_bytes(); util::setup(); loadenv::load_buf(dotenv).unwrap(); assert_eq!(var("FOO"), "bar"); assert_eq!(var("BOP"), "b a z"); assert_eq!(var("D"), ""); } #[test] fn load_buf_example_2() { let dotenv = "# favorite colors\n\nYELLOW = #f7e418\nBLUE = #1818f7".as_bytes(); util::setup(); loadenv::load_buf(dotenv).unwrap(); assert_eq!(var("YELLOW"), "#f7e418"); assert_eq!(var("BLUE"), "#1818f7"); } #[test] fn load_buf_overwrite_environment() { let dotenv = "#Overwrite FOO\nFOO = new".as_bytes(); util::setup(); env::set_var("FOO", "old"); loadenv::load_buf(dotenv).unwrap(); assert_eq!(var("FOO"), "old"); } #[test] fn load_buf_keep_last() { let dotenv = "FOO=first\nFOO=last".as_bytes(); util::setup(); loadenv::load_buf(dotenv).unwrap(); assert_eq!(var("FOO"), "last") } #[test] fn load_buf_err_begins_with_assignment() { let dotenv = "FOO = bar \n=D\n\n# comment\nBOP = b a z".as_bytes(); util::setup(); let err = loadenv::load_buf(dotenv).unwrap_err(); assert!(env::var("FOO").is_err()); assert!(env::var("BOP").is_err()); assert!(env::var("D").is_err()); assert_eq!(err, "error on line 2: line begins with assignment"); } #[test] fn load_buf_err_illegal_char() { let dotenv = "FOO = bar \nD\n\n# comment\nBoP = b a z".as_bytes(); util::setup(); let err = loadenv::load_buf(dotenv).unwrap_err(); assert!(env::var("FOO").is_err()); assert!(env::var("BOP").is_err()); assert!(env::var("D").is_err()); assert_eq!(err, "error on line 5: illegal character in key: `o`"); }