diff --git a/Cargo.toml b/Cargo.toml index e658eaa..4f6856e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,7 @@ diesel_migrations = { workspace = true } wiremock = { workspace = true } cookie = { workspace = true } mockito = { workspace = true } -reqwest = { workspace = true, features = ["json", "cookies", "blocking"] } +reqwest = { workspace = true, features = ["json", "cookies", "blocking", "rustls-tls"] } # Web/E2E testing - using Chrome DevTools Protocol directly (no chromedriver) chromiumoxide = { workspace = true } diff --git a/src/bot/mod.rs b/src/bot/mod.rs index e478362..debc4fc 100644 --- a/src/bot/mod.rs +++ b/src/bot/mod.rs @@ -19,7 +19,9 @@ pub struct BotResponse { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] +#[derive(Default)] pub enum ResponseContentType { + #[default] Text, Image, Audio, @@ -31,11 +33,6 @@ pub enum ResponseContentType { Contact, } -impl Default for ResponseContentType { - fn default() -> Self { - Self::Text - } -} #[derive(Debug, Clone)] pub struct AssertionResult { @@ -114,7 +111,9 @@ pub struct AssertionRecord { } #[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Default)] pub enum ConversationState { + #[default] Initial, WaitingForUser, WaitingForBot, @@ -123,11 +122,6 @@ pub enum ConversationState { Error, } -impl Default for ConversationState { - fn default() -> Self { - Self::Initial - } -} #[cfg(test)] mod tests { diff --git a/src/bot/runner.rs b/src/bot/runner.rs index edc239d..563c0c6 100644 --- a/src/bot/runner.rs +++ b/src/bot/runner.rs @@ -32,19 +32,16 @@ impl Default for BotRunnerConfig { } #[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Default)] pub enum LogLevel { Trace, Debug, + #[default] Info, Warn, Error, } -impl Default for LogLevel { - fn default() -> Self { - Self::Info - } -} pub struct BotRunner { config: BotRunnerConfig, diff --git a/src/fixtures/mod.rs b/src/fixtures/mod.rs index 76e86a2..5abd796 100644 --- a/src/fixtures/mod.rs +++ b/src/fixtures/mod.rs @@ -33,18 +33,15 @@ impl Default for User { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] +#[derive(Default)] pub enum Role { Admin, Attendant, + #[default] User, Guest, } -impl Default for Role { - fn default() -> Self { - Self::User - } -} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Customer { @@ -78,7 +75,9 @@ impl Default for Customer { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] #[allow(clippy::upper_case_acronyms)] +#[derive(Default)] pub enum Channel { + #[default] WhatsApp, Teams, Web, @@ -87,11 +86,6 @@ pub enum Channel { API, } -impl Default for Channel { - fn default() -> Self { - Self::WhatsApp - } -} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Bot { @@ -155,18 +149,15 @@ impl Default for Session { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] +#[derive(Default)] pub enum SessionState { + #[default] Active, Waiting, Transferred, Ended, } -impl Default for SessionState { - fn default() -> Self { - Self::Active - } -} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Message { @@ -202,7 +193,9 @@ pub enum MessageDirection { #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] +#[derive(Default)] pub enum ContentType { + #[default] Text, Image, Audio, @@ -213,11 +206,6 @@ pub enum ContentType { Interactive, } -impl Default for ContentType { - fn default() -> Self { - Self::Text - } -} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct QueueEntry { @@ -248,22 +236,21 @@ impl Default for QueueEntry { #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] +#[derive(Default)] pub enum Priority { Low = 0, + #[default] Normal = 1, High = 2, Urgent = 3, } -impl Default for Priority { - fn default() -> Self { - Self::Normal - } -} #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] +#[derive(Default)] pub enum QueueStatus { + #[default] Waiting, Assigned, InProgress, @@ -271,11 +258,6 @@ pub enum QueueStatus { Cancelled, } -impl Default for QueueStatus { - fn default() -> Self { - Self::Waiting - } -} #[must_use] pub fn admin_user() -> User { diff --git a/src/web/browser.rs b/src/web/browser.rs index 0d34aea..b038a0b 100644 --- a/src/web/browser.rs +++ b/src/web/browser.rs @@ -15,18 +15,15 @@ use super::{Cookie, Key, Locator, WaitCondition}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] +#[derive(Default)] pub enum BrowserType { + #[default] Chrome, Firefox, Safari, Edge, } -impl Default for BrowserType { - fn default() -> Self { - Self::Chrome - } -} impl BrowserType { #[must_use]