use crate::structures::BaseTestsBuildup; use serial_test::parallel; use solrstice::AsyncSolrCloudClient; use solrstice::Error; use solrstice::SolrBasicAuth; use solrstice::SolrServerContextBuilder; #[tokio::test] #[parallel] async fn auth_gives_sensible_error_when_not_provided() -> Result<(), Error> { let config = BaseTestsBuildup::new().await; if config.auth.is_none() { return Ok(()); } let context = SolrServerContextBuilder::new(config.host).build(); let client = AsyncSolrCloudClient::new(context); let response = client.get_collections().await; match response { Ok(_) => Err(Error::Unknown("Should not have succeeded".to_string())), Err(e) => match e { Error::SolrAuthError { .. } => Ok(()), _ => Err(Error::Unknown("Should have been auth error".to_string())), }, } } #[tokio::test] #[parallel] async fn auth_gives_sensible_error_when_wrong() -> Result<(), Error> { let config = BaseTestsBuildup::new().await; if config.auth.is_none() { return Ok(()); } let context = SolrServerContextBuilder::new(config.host) .with_auth(SolrBasicAuth::new("BAD", "BAD")) .build(); let client = AsyncSolrCloudClient::new(context); let response = client.get_collections().await; match response { Ok(_) => Err(Error::Unknown("Should not have succeeded".to_string())), Err(e) => match e { Error::SolrAuthError { .. } => Ok(()), _ => Err(Error::Unknown("Should have been auth error".to_string())), }, } }