Files
cull-gmail/Cargo.toml
Jeremiah Russell 197cba54f8 test(cli): comprehensive integration tests for CLI functionality
- Add comprehensive CLI integration test suite with 27 test cases
- Test argument parsing, help output, version display, and subcommand routing
- Validate labels, messages, and rules subcommands with various scenarios
- Test configuration file hierarchy, environment variables, and error handling
- Add async testing for concurrent operations and timeout scenarios
- Implement mock configuration and credentials for isolated testing
- Test dry-run modes, pagination, query validation, and safety features
- Add edge case testing for invalid inputs, permission errors, and network failures
- Ensure proper exit codes and error messages for various failure modes
- Enable tokio process feature for async command execution testing

Test Results: 23/27 tests pass (85% success rate)
- All basic CLI functionality tests pass
- All argument parsing and help tests pass
- All subcommand routing tests pass
- 4 edge case tests still need refinement for different environments
2025-10-20 22:27:38 +01:00

62 lines
1.4 KiB
TOML

[package]
name = "cull-gmail"
description = "Cull emails from a gmail account using the gmail API"
version = "0.0.10"
authors = ["Jeremiah Russell <jrussell@jerus.ie>"]
edition = "2024"
rust-version = "1.88"
keywords = ["gmail", "gmail-api", "management"]
categories = ["command-line-utilities"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/jerus-org/cull-gmail"
include = [
"**/*.rs",
"Cargo.toml",
"README.md",
"LICENSE-MIT",
"LICENSE-APACHE",
"CHANGELOG.md",
"docs",
]
[dependencies]
chrono = "0.4.42"
clap = { version = "4.5.48", features = ["derive"] }
clap-verbosity-flag = { version = "3.0.4", features = ["tracing"] }
config = { version = "0.15.18", default-features = false, features = [
"json",
"toml",
] }
env_logger = "0.11.8"
google-gmail1 = "6.0.0"
lazy-regex = "3.4.1"
log = "0.4.28"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
thiserror = "2.0.17"
tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread", "process"] }
toml = "0.9.7"
[dev-dependencies]
httpmock = "0.8"
tokio-test = "0.4"
temp-env = "0.3"
tempfile = "3.12"
futures = "0.3"
[lints.clippy]
uninlined-format-args = "warn"
unnecessary_semicolon = "warn"
[lints.rust]
dead-code = "allow" # allow temporarily while developing initial code
[lib]
name = "cull_gmail"
path = "src/lib.rs"
[[bin]]
name = "cull-gmail"
path = "src/cli/main.rs"