diff --git a/src/docbuilder/rustwide_builder.rs b/src/docbuilder/rustwide_builder.rs index 0b215ee34..979970140 100644 --- a/src/docbuilder/rustwide_builder.rs +++ b/src/docbuilder/rustwide_builder.rs @@ -1295,6 +1295,7 @@ mod tests { use crate::registry_api::ReleaseData; use crate::storage::{CompressionAlgorithm, compression}; use crate::test::{AxumRouterTestExt, TestEnvironment, wrapper}; + use pretty_assertions::assert_eq; use std::{io, iter}; use test_case::test_case; @@ -1979,21 +1980,25 @@ mod tests { #[ignore] fn test_no_implicit_features_for_optional_dependencies_with_dep_syntax() { wrapper(|env| { - let crate_ = "stylish-core"; - let version = "0.1.1"; let mut builder = RustwideBuilder::init(env).unwrap(); builder.update_toolchain()?; assert!( builder - .build_package(crate_, version, PackageKind::CratesIo, false)? + .build_local_package(Path::new("tests/crates/optional-dep"))? .successful ); - assert!( - !get_features(env, crate_, version)? + assert_eq!( + get_features(env, "optional-dep", "0.0.1")? .unwrap() .iter() - .any(|f| f.name == "with_builtin_macros") + .map(|f| f.name.to_owned()) + .sorted() + .collect_vec(), + // "regex" feature is not in the list, + // because we don't have implicit features for optional dependencies + // with `dep` syntax any more. + vec!["alloc", "default", "optional_regex", "std"] ); Ok(()) diff --git a/tests/crates/optional-dep/Cargo.toml b/tests/crates/optional-dep/Cargo.toml new file mode 100644 index 000000000..5505d34a2 --- /dev/null +++ b/tests/crates/optional-dep/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "optional-dep" +version = "0.0.1" +edition = "2024" + +[features] +default = ["std"] +std = ["alloc"] +alloc = [] +optional_regex = ["dep:regex"] + +[dependencies] +regex = { version = "1.11.3", optional = true } diff --git a/tests/crates/optional-dep/src/lib.rs b/tests/crates/optional-dep/src/lib.rs new file mode 100644 index 000000000..e69de29bb