summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-11-06 08:35:26 -0500
committerGitHub <noreply@github.com>2023-11-06 08:35:26 -0500
commit7eb34c7a36ac065d169e3645fc8a3da3e71431d7 (patch)
tree1d1c8428b7a148a598e7c5771f203e6917487ca6
parent56a4c981f57570888ec159dd0da8c1ad936878a1 (diff)
fix(byonm): correct resolution for scoped packages (#21083)
-rw-r--r--cli/tests/integration/npm_tests.rs67
-rw-r--r--cli/tests/testdata/npm/different_nested_dep/main.js5
-rw-r--r--cli/tests/testdata/npm/different_nested_dep/main.out2
-rw-r--r--cli/tests/testdata/npm/different_nested_dep/package.json6
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/index.js1
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/package.json5
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/index.js1
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/package.json5
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/index.js2
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/package.json8
-rw-r--r--test_util/src/builders.rs9
11 files changed, 83 insertions, 28 deletions
diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs
index 927e83475..92af166e0 100644
--- a/cli/tests/integration/npm_tests.rs
+++ b/cli/tests/integration/npm_tests.rs
@@ -2227,17 +2227,9 @@ pub fn byonm_cjs_esm_packages() {
.use_temp_cwd()
.build();
let dir = test_context.temp_dir();
- let run_npm = |args: &str| {
- test_context
- .new_command()
- .name("npm")
- .args(args)
- .run()
- .skip_output_check();
- };
- run_npm("init -y");
- run_npm("install @denotest/esm-basic @denotest/cjs-default-export @denotest/dual-cjs-esm chalk@4 chai@4.3");
+ test_context.run_npm("init -y");
+ test_context.run_npm("install @denotest/esm-basic @denotest/cjs-default-export @denotest/dual-cjs-esm chalk@4 chai@4.3");
dir.write(
"main.ts",
@@ -2346,12 +2338,7 @@ pub fn byonm_package_specifier_not_installed_and_invalid_subpath() {
"import '@denotest/conditional-exports-strict/test';",
);
- test_context
- .new_command()
- .name("npm")
- .args("install")
- .run()
- .skip_output_check();
+ test_context.run_npm("install");
let output = test_context.new_command().args("run main.ts").run();
output.assert_matches_text(
@@ -2395,12 +2382,7 @@ pub fn byonm_package_npm_specifier_not_installed_and_invalid_subpath() {
"import 'npm:@denotest/conditional-exports-strict/test';",
);
- test_context
- .new_command()
- .name("npm")
- .args("install")
- .run()
- .skip_output_check();
+ test_context.run_npm("install");
let output = test_context.new_command().args("run main.ts").run();
output.assert_matches_text(
@@ -2487,12 +2469,7 @@ console.log(add(1, 2));
"#,
);
- test_context
- .new_command()
- .name("npm")
- .args("install")
- .run()
- .skip_output_check();
+ test_context.run_npm("install");
let output = test_context
.new_command()
@@ -2530,3 +2507,37 @@ itest!(imports_package_json_sub_path_import_not_defined {
exit_code: 1,
http_server: true,
});
+
+itest!(different_nested_dep_node_modules_dir_false {
+ args: "run --quiet --node-modules-dir=false npm/different_nested_dep/main.js",
+ output: "npm/different_nested_dep/main.out",
+ envs: env_vars_for_npm_tests(),
+ exit_code: 0,
+ http_server: true,
+});
+
+itest!(different_nested_dep_node_modules_dir_true {
+ args: "run --quiet --node-modules-dir=true main.js",
+ output: "npm/different_nested_dep/main.out",
+ copy_temp_dir: Some("npm/different_nested_dep/"),
+ cwd: Some("npm/different_nested_dep/"),
+ envs: env_vars_for_npm_tests(),
+ exit_code: 0,
+ http_server: true,
+});
+
+#[test]
+pub fn different_nested_dep_byonm() {
+ let test_context = TestContextBuilder::for_npm()
+ .use_copy_temp_dir("npm/different_nested_dep")
+ .cwd("npm/different_nested_dep/")
+ .build();
+
+ test_context.run_npm("install");
+
+ let output = test_context
+ .new_command()
+ .args("run --unstable-byonm main.js")
+ .run();
+ output.assert_matches_file("npm/different_nested_dep/main.out");
+}
diff --git a/cli/tests/testdata/npm/different_nested_dep/main.js b/cli/tests/testdata/npm/different_nested_dep/main.js
new file mode 100644
index 000000000..5677eb094
--- /dev/null
+++ b/cli/tests/testdata/npm/different_nested_dep/main.js
@@ -0,0 +1,5 @@
+import dep from "@denotest/different-nested-dep";
+import childDep from "@denotest/different-nested-dep-child";
+
+console.log(dep);
+console.log(childDep);
diff --git a/cli/tests/testdata/npm/different_nested_dep/main.out b/cli/tests/testdata/npm/different_nested_dep/main.out
new file mode 100644
index 000000000..1191247b6
--- /dev/null
+++ b/cli/tests/testdata/npm/different_nested_dep/main.out
@@ -0,0 +1,2 @@
+1
+2
diff --git a/cli/tests/testdata/npm/different_nested_dep/package.json b/cli/tests/testdata/npm/different_nested_dep/package.json
new file mode 100644
index 000000000..c20425851
--- /dev/null
+++ b/cli/tests/testdata/npm/different_nested_dep/package.json
@@ -0,0 +1,6 @@
+{
+ "dependencies": {
+ "@denotest/different-nested-dep": "1.0.0",
+ "@denotest/different-nested-dep-child": "2.0.0"
+ }
+}
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/index.js b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/index.js
new file mode 100644
index 000000000..aef22247d
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/index.js
@@ -0,0 +1 @@
+export default 1;
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/package.json
new file mode 100644
index 000000000..ca58520a4
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/different-nested-dep-child",
+ "type": "module",
+ "version": "1.0.0"
+}
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/index.js b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/index.js
new file mode 100644
index 000000000..842e368a0
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/index.js
@@ -0,0 +1 @@
+export default 2;
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/package.json
new file mode 100644
index 000000000..9d2e56975
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep-child/2.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/different-nested-dep-child",
+ "type": "module",
+ "version": "2.0.0"
+}
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/index.js b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/index.js
new file mode 100644
index 000000000..dee5330b7
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/index.js
@@ -0,0 +1,2 @@
+import version from "@denotest/different-nested-dep-child";
+export default version;
diff --git a/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/package.json
new file mode 100644
index 000000000..879a4e012
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/different-nested-dep/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/different-nested-dep",
+ "version": "1.0.0",
+ "type": "module",
+ "dependencies": {
+ "@denotest/different-nested-dep-child": "1.0.0"
+ }
+}
diff --git a/test_util/src/builders.rs b/test_util/src/builders.rs
index 39771e088..36b61ca1b 100644
--- a/test_util/src/builders.rs
+++ b/test_util/src/builders.rs
@@ -212,6 +212,15 @@ impl TestContext {
builder.deno_exe(&self.deno_exe).set_test_context(self);
builder
}
+
+ pub fn run_npm(&self, args: impl AsRef<str>) {
+ self
+ .new_command()
+ .name("npm")
+ .args(args)
+ .run()
+ .skip_output_check();
+ }
}
pub struct TestCommandBuilder {