bottest/Cargo.toml
Rodrigo Rodriguez (Pragmatismo) 45d588ad2b E2E test improvements: auto-start services, use Brave browser
- Add BotServerInstance::start_with_main_stack() for using real LLM
- Update E2E tests to auto-start BotServer and BotUI if not running
- Prefer Brave browser over Chrome/Chromium for CDP testing
- Upgrade chromiumoxide to 0.8
- Add browser window position/size for visibility
- Fix chat tests to require BotUI for chat interface
- Add browser_service.rs for CDP-based browser management
- Remove chromedriver dependency (use CDP directly)
2025-12-15 13:57:05 -03:00

107 lines
2.6 KiB
TOML

[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"