diff --git a/Cargo.lock b/Cargo.lock index 8cfbe3c..15cfca7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -859,9 +859,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pnp" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cda59e692c332a953b19dcfe863b45344ce8bfc9027e229f3a732e3d61c50a" +checksum = "b4efb966c09f2fd5359294a357e14819277b4f0ce5981449b289bdd334b86699" dependencies = [ "arca", "byteorder", diff --git a/Cargo.toml b/Cargo.toml index 38941ad..57eb3d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,7 +88,7 @@ json-strip-comments = "1.0.2" indexmap = { version = "2.2.6", features = ["serde"] } cfg-if = "1.0" -pnp = { version = "0.9.1", optional = true } +pnp = { version = "0.9.2", optional = true } document-features = { version = "0.2.8", optional = true } futures = "0.3.31" diff --git a/src/tests/pnp.rs b/src/tests/pnp.rs index e187454..6753975 100644 --- a/src/tests/pnp.rs +++ b/src/tests/pnp.rs @@ -66,6 +66,33 @@ async fn pnp1() { )), ); } + +#[tokio::test] +async fn pnp_resolve_description_file() { + let fixture = super::fixture_root().join("pnp"); + + let resolver = Resolver::new(ResolveOptions { + extensions: vec![".js".into()], + condition_names: vec!["import".into()], + ..ResolveOptions::default() + }); + + let full_path = fixture.join( + ".yarn/cache/preact-npm-10.25.4-2dd2c0aa44-33a009d614.zip/node_modules/preact/dist/preact.js", + ).to_string_lossy().to_string(); + + let r = resolver.resolve(&fixture, &full_path).await.unwrap(); + + assert_eq!( + r.package_json.unwrap().path.to_string_lossy().to_string(), + fixture + .join(".yarn/cache/preact-npm-10.25.4-2dd2c0aa44-33a009d614.zip/node_modules/preact") + .join("package.json") + .to_string_lossy() + .to_string() + ); +} + #[tokio::test] async fn resolve_in_pnp_linked_folder() { let fixture = super::fixture_root().join("pnp");