[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" [dependencies] # The server we're testing - include drive and cache for required deps botserver = { path = "../botserver", default-features = false, features = ["chat", "llm", "automation", "tasks", "directory", "drive", "cache"] } botlib = { path = "../botlib", features = ["database"] } # Async runtime tokio = { version = "1.41", features = ["full", "test-util", "macros"] } async-trait = "0.1" futures = "0.3" futures-util = "0.3" # Database diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] } diesel_migrations = "2.1.0" # HTTP mocking and testing wiremock = "0.6" cookie = "0.18" mockito = "1.7" reqwest = { version = "0.12", features = ["json", "cookies", "blocking"] } # Web/E2E testing - using Chrome DevTools Protocol directly (no chromedriver) chromiumoxide = { version = "0.8", features = ["tokio-runtime"], default-features = false } # Web framework for test server axum = { version = "0.7.5", features = ["ws", "multipart", "macros"] } tower = "0.4" tower-http = { version = "0.5", features = ["cors", "trace"] } hyper = { version = "0.14", features = ["full"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Utilities uuid = { version = "1.11", features = ["serde", "v4"] } chrono = { version = "0.4", features = ["serde"] } rand = "0.9" tempfile = "3" which = "7" regex = "1.11" base64 = "0.22" url = "2.5" dirs = "5.0" # Process management for services nix = { version = "0.29", features = ["signal", "process"] } # Archive extraction zip = "2.2" # Logging and tracing log = "0.4" env_logger = "0.11" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] } # Error handling anyhow = "1.0" thiserror = "2.0" # Test framework enhancements pretty_assertions = "1.4" # Async testing tokio-test = "0.4" # Rhai for BASIC function testing rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", features = ["sync"] } # Configuration dotenvy = "0.15" [dev-dependencies] insta = { version = "1.40", features = ["json", "yaml"] } [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"