summaryrefslogtreecommitdiff
path: root/cli/compat/esm_resolver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/compat/esm_resolver.rs')
-rw-r--r--cli/compat/esm_resolver.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/cli/compat/esm_resolver.rs b/cli/compat/esm_resolver.rs
index 13eb1efe6..357a95de8 100644
--- a/cli/compat/esm_resolver.rs
+++ b/cli/compat/esm_resolver.rs
@@ -903,7 +903,7 @@ fn parse_package_name(
}
let package_name = if let Some(index) = separator_index {
- specifier[0..=index].to_string()
+ specifier[0..index].to_string()
} else {
specifier.to_string()
};
@@ -1196,6 +1196,22 @@ mod tests {
}
#[test]
+ fn package_subpath() {
+ let cwd = testdir("subpath");
+ let main = Url::from_file_path(cwd.join("main.js")).unwrap();
+ let actual = node_resolve("foo", main.as_str(), &cwd).unwrap();
+ let expected =
+ Url::from_file_path(cwd.join("node_modules/foo/index.js")).unwrap();
+ matches!(actual, ResolveResponse::CommonJs(_));
+ assert_eq!(actual.to_result().unwrap(), expected);
+ let actual = node_resolve("foo/server.js", main.as_str(), &cwd).unwrap();
+ let expected =
+ Url::from_file_path(cwd.join("node_modules/foo/server.js")).unwrap();
+ matches!(actual, ResolveResponse::CommonJs(_));
+ assert_eq!(actual.to_result().unwrap(), expected);
+ }
+
+ #[test]
fn basic_deps() {
let cwd = testdir("basic_deps");
let main = Url::from_file_path(cwd.join("main.js")).unwrap();