2025-12-06 11:05:57 -03:00
|
|
|
[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"
|
2025-12-21 23:40:44 -03:00
|
|
|
readme = "README.md"
|
|
|
|
|
keywords = ["testing", "bot", "integration-testing", "e2e", "general-bots"]
|
|
|
|
|
categories = ["development-tools::testing"]
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
[dependencies]
|
2026-01-14 12:36:26 -03:00
|
|
|
# Common library for shared types
|
2026-01-23 09:37:46 -03:00
|
|
|
botlib = { workspace = true, features = ["database"] }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Async runtime
|
2026-01-23 09:37:46 -03:00
|
|
|
tokio = { workspace = true, features = ["full", "test-util", "macros"] }
|
|
|
|
|
async-trait = { workspace = true }
|
|
|
|
|
futures = { workspace = true }
|
|
|
|
|
futures-util = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Database
|
2026-01-23 09:37:46 -03:00
|
|
|
diesel = { workspace = true, features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] }
|
|
|
|
|
diesel_migrations = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# HTTP mocking and testing
|
2026-01-23 09:37:46 -03:00
|
|
|
wiremock = { workspace = true }
|
|
|
|
|
cookie = { workspace = true }
|
|
|
|
|
mockito = { workspace = true }
|
2026-01-24 22:06:20 -03:00
|
|
|
reqwest = { workspace = true, features = ["json", "cookies", "blocking", "rustls-tls"] }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
2025-12-15 13:57:05 -03:00
|
|
|
# Web/E2E testing - using Chrome DevTools Protocol directly (no chromedriver)
|
2026-01-23 09:37:46 -03:00
|
|
|
chromiumoxide = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Web framework for test server
|
2026-01-23 09:37:46 -03:00
|
|
|
axum = { workspace = true }
|
|
|
|
|
tower = { workspace = true }
|
|
|
|
|
tower-http = { workspace = true, features = ["cors", "trace"] }
|
2025-12-06 11:05:57 -03:00
|
|
|
hyper = { version = "0.14", features = ["full"] }
|
|
|
|
|
|
|
|
|
|
# Serialization
|
2026-01-23 09:37:46 -03:00
|
|
|
serde = { workspace = true, features = ["derive"] }
|
|
|
|
|
serde_json = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Utilities
|
2026-01-23 09:37:46 -03:00
|
|
|
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 }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Process management for services
|
2026-01-23 09:37:46 -03:00
|
|
|
nix = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Archive extraction
|
2026-01-23 09:37:46 -03:00
|
|
|
zip = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Logging and tracing
|
2026-01-23 09:37:46 -03:00
|
|
|
log = { workspace = true }
|
|
|
|
|
env_logger = { workspace = true }
|
|
|
|
|
tracing = { workspace = true }
|
|
|
|
|
tracing-subscriber = { workspace = true, features = ["fmt", "env-filter"] }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Error handling
|
2026-01-23 09:37:46 -03:00
|
|
|
anyhow = { workspace = true }
|
|
|
|
|
thiserror = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Test framework enhancements
|
2026-01-23 09:37:46 -03:00
|
|
|
pretty_assertions = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Async testing
|
2026-01-23 09:37:46 -03:00
|
|
|
tokio-test = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
# Rhai for BASIC function testing
|
|
|
|
|
rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", features = ["sync"] }
|
|
|
|
|
|
|
|
|
|
# Configuration
|
2026-01-23 09:37:46 -03:00
|
|
|
dotenvy = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
[dev-dependencies]
|
2026-01-23 09:37:46 -03:00
|
|
|
insta = { workspace = true }
|
2025-12-06 11:05:57 -03:00
|
|
|
|
|
|
|
|
[features]
|
2025-12-15 13:57:05 -03:00
|
|
|
default = ["full"]
|
2025-12-06 11:05:57 -03:00
|
|
|
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"
|
2025-12-21 23:40:44 -03:00
|
|
|
|
2025-12-23 15:52:52 -03:00
|
|
|
[lints]
|
|
|
|
|
workspace = true
|