diff --git a/server/src/engine/config.rs b/server/src/engine/config.rs index 33ba576d..7d518abe 100644 --- a/server/src/engine/config.rs +++ b/server/src/engine/config.rs @@ -359,7 +359,7 @@ pub enum ConfigSource { impl ConfigSource { fn as_str(&self) -> &'static str { match self { - ConfigSource::Cli => "CLI", + ConfigSource::Cli => "command-line arguments", ConfigSource::Env => "ENV", ConfigSource::File => "config file", } @@ -530,8 +530,8 @@ fn arg_decode_auth( return Err(ConfigError::with_src( CS::SOURCE, ConfigErrorKind::ErrorString(format!( - "to enable auth, you must provide values for {}", - CS::KEY_AUTH_DRIVER, + "to enable password auth, you must provide a value for '{}'", + CS::KEY_AUTH_ROOT_PASSWORD, )), ) .into()); diff --git a/server/src/engine/tests/client_misc/sec/mod.rs b/server/src/engine/tests/client_misc/sec/mod.rs index be1fa0bb..824e5666 100644 --- a/server/src/engine/tests/client_misc/sec/mod.rs +++ b/server/src/engine/tests/client_misc/sec/mod.rs @@ -31,7 +31,10 @@ mod dml_sec; use { crate::engine::error::QueryError, sky_macros::dbtest, - skytable::{error::Error, query}, + skytable::{ + error::{ConnectionSetupError, Error}, + query, + }, }; const INVALID_SYNTAX_ERR: u16 = QueryError::QLInvalidSyntax.value_u8() as u16; @@ -52,3 +55,12 @@ fn deny_unknown_tokens() { ); } } + +#[dbtest(username = "root", password = "")] +fn ensure_empty_password_returns_hs_error_5() { + let db = db_connect!(); + assert_err_eq!( + db, + Error::ConnectionSetupErr(ConnectionSetupError::HandshakeError(5)) + ); +} diff --git a/sky-macros/src/dbtest.rs b/sky-macros/src/dbtest.rs index 68cfef90..77eab96e 100644 --- a/sky-macros/src/dbtest.rs +++ b/sky-macros/src/dbtest.rs @@ -241,6 +241,14 @@ pub fn dbtest(attrs: TokenStream, item: TokenStream) -> TokenStream { block = quote! { #block /// Get a Skyhash connection the database (defined by [`sky_macros::dbtest`]) + #[allow(unused_macros)] + macro_rules! db_connect { + () => {{ + skytable::Config::new(__DBTEST_HOST, __DBTEST_PORT, __DBTEST_USER, __DBTEST_PASS).connect() + }} + } + /// Get a Skyhash connection the database (defined by [`sky_macros::dbtest`]) + #[allow(unused_macros)] macro_rules! db { () => {{ skytable::Config::new(__DBTEST_HOST, __DBTEST_PORT, __DBTEST_USER, __DBTEST_PASS).connect().unwrap()