107 lines
2.6 KiB
TOML
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.7", 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"
|