[package] name = "bottest" version = "6.1.0" edition = "2021" description = "Comprehensive test suite for General Bots - Unit, Integration, and E2E testing" license = "AGPL-3.0" repository = "https://github.com/GeneralBots/BotServer" readme = "README.md" keywords = ["testing", "bot", "integration-testing", "e2e", "general-bots"] categories = ["development-tools::testing"] [dependencies] # Common library for shared types botlib = { workspace = true, features = ["database"] } # Async runtime tokio = { workspace = true, features = ["full", "test-util", "macros"] } async-trait = { workspace = true } futures = { workspace = true } futures-util = { workspace = true } # Database diesel = { workspace = true, features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] } diesel_migrations = { workspace = true } # HTTP mocking and testing wiremock = { workspace = true } cookie = { workspace = true } mockito = { workspace = true } reqwest = { workspace = true, features = ["json", "cookies", "blocking"] } # Web/E2E testing - using Chrome DevTools Protocol directly (no chromedriver) chromiumoxide = { workspace = true } # Web framework for test server axum = { workspace = true } tower = { workspace = true } tower-http = { workspace = true, features = ["cors", "trace"] } hyper = { version = "0.14", features = ["full"] } # Serialization serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } # Utilities uuid = { workspace = true, features = ["serde", "v4"] } chrono = { workspace = true, features = ["serde"] } rand = { workspace = true } tempfile = { workspace = true } which = { workspace = true } regex = { workspace = true } base64 = { workspace = true } url = { workspace = true } dirs = { workspace = true } # Process management for services nix = { workspace = true } # Archive extraction zip = { workspace = true } # Logging and tracing log = { workspace = true } env_logger = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["fmt", "env-filter"] } # Error handling anyhow = { workspace = true } thiserror = { workspace = true } # Test framework enhancements pretty_assertions = { workspace = true } # Async testing tokio-test = { workspace = true } # Rhai for BASIC function testing rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", features = ["sync"] } # Configuration dotenvy = { workspace = true } [dev-dependencies] insta = { workspace = true } [features] default = ["full"] integration = [] e2e = [] full = ["integration", "e2e"] [[test]] name = "unit" path = "tests/unit/mod.rs" [[test]] name = "integration" path = "tests/integration/mod.rs" required-features = ["integration"] [[test]] name = "e2e" path = "tests/e2e/mod.rs" required-features = ["e2e"] [[bin]] name = "bottest" path = "src/main.rs" [lints] workspace = true