[package]
name = "test-better-property"
description = "Property-testing bridge for the test-better testing library."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
categories.workspace = true
keywords.workspace = true
# Workspace README, packaged into every crate so the crates.io page shows it.
readme = "../../README.md"

[dependencies]
test-better-core = { workspace = true }
# The property-testing backend. `default-features = false` drops `fork` and
# `timeout` (and their `rusty-fork`/`libc`/`wait-timeout` dependencies): the
# `Strategy<T>` seam only needs `proptest`'s generation and shrinking, which
# the `std` feature carries.
proptest = { version = "1", default-features = false, features = ["std"] }
# The best-effort second backend, behind the `quickcheck` feature and off by
# default. `default-features = false` drops `quickcheck`'s `env_logger`/`log`
# (`use_logging`) dependencies: the bridge only needs `Arbitrary` for
# generation and shrinking.
quickcheck = { version = "1", default-features = false, optional = true }

[dev-dependencies]
# Dogfooding: the crate's own tests assert with `check!`. A dev-dependency
# cycle, which Cargo permits (same pattern as `test-better-core`). Declared
# path-only so Cargo drops it from the published manifest and the cycle does
# not block `cargo publish`.
test-better-matchers = { path = "../test-better-matchers", default-features = false }

[features]
# The `quickcheck` bridge: `arbitrary::<T>()` turns a `quickcheck::Arbitrary`
# type into a seam `Strategy<T>`. Best-effort and feature-gated; see the
# `quickcheck` module's docs for the reduced-fidelity caveats.
quickcheck = ["dep:quickcheck"]

# Render docs.rs with every feature on, so feature-gated APIs are visible.
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true
