diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index f56774e8eb5675..5dc04262028297 100644 --- a/cli/tools/registry/pm.rs +++ b/cli/tools/registry/pm.rs @@ -130,8 +130,10 @@ impl NpmConfig { fn add(&mut self, selected: SelectedPackage, dev: bool) { let (name, version) = package_json_dependency_entry(selected); if dev { + self.dependencies.swap_remove(&name); self.dev_dependencies.insert(name, version); } else { + self.dev_dependencies.swap_remove(&name); self.dependencies.insert(name, version); } } diff --git a/tests/specs/install/install_add_dep_existing/__test__.jsonc b/tests/specs/install/install_add_dep_existing/__test__.jsonc new file mode 100644 index 00000000000000..74c509a57d9f0d --- /dev/null +++ b/tests/specs/install/install_add_dep_existing/__test__.jsonc @@ -0,0 +1,16 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "install npm:@denotest/esm-basic", + "output": "install.out" + }, + { + "args": [ + "eval", + "console.log(Deno.readTextFileSync('package.json').trim())" + ], + "output": "package.json.out" + } + ] +} diff --git a/tests/specs/install/install_add_dep_existing/install.out b/tests/specs/install/install_add_dep_existing/install.out new file mode 100644 index 00000000000000..42161f3ae1d01c --- /dev/null +++ b/tests/specs/install/install_add_dep_existing/install.out @@ -0,0 +1,4 @@ +Add npm:@denotest/esm-basic@1.0.0 +Download http://localhost:4260/@denotest/esm-basic +Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz +Initialize @denotest/esm-basic@1.0.0 diff --git a/tests/specs/install/install_add_dep_existing/package.json b/tests/specs/install/install_add_dep_existing/package.json new file mode 100644 index 00000000000000..d5ca56e00478be --- /dev/null +++ b/tests/specs/install/install_add_dep_existing/package.json @@ -0,0 +1,3 @@ +{ + "devDependencies": { "@denotest/esm-basic": "^1.0.0" } +} diff --git a/tests/specs/install/install_add_dep_existing/package.json.out b/tests/specs/install/install_add_dep_existing/package.json.out new file mode 100644 index 00000000000000..613d9863605e42 --- /dev/null +++ b/tests/specs/install/install_add_dep_existing/package.json.out @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/esm-basic": "^1.0.0" + } +} diff --git a/tests/specs/install/install_add_dev_existing/__test__.jsonc b/tests/specs/install/install_add_dev_existing/__test__.jsonc new file mode 100644 index 00000000000000..e4e2f8a31c3c87 --- /dev/null +++ b/tests/specs/install/install_add_dev_existing/__test__.jsonc @@ -0,0 +1,16 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "install --dev npm:@denotest/esm-basic", + "output": "install.out" + }, + { + "args": [ + "eval", + "console.log(Deno.readTextFileSync('package.json').trim())" + ], + "output": "package.json.out" + } + ] +} diff --git a/tests/specs/install/install_add_dev_existing/install.out b/tests/specs/install/install_add_dev_existing/install.out new file mode 100644 index 00000000000000..42161f3ae1d01c --- /dev/null +++ b/tests/specs/install/install_add_dev_existing/install.out @@ -0,0 +1,4 @@ +Add npm:@denotest/esm-basic@1.0.0 +Download http://localhost:4260/@denotest/esm-basic +Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz +Initialize @denotest/esm-basic@1.0.0 diff --git a/tests/specs/install/install_add_dev_existing/package.json b/tests/specs/install/install_add_dev_existing/package.json new file mode 100644 index 00000000000000..ad8518e791a975 --- /dev/null +++ b/tests/specs/install/install_add_dev_existing/package.json @@ -0,0 +1,3 @@ +{ + "dependencies": { "@denotest/esm-basic": "^1.0.0" } +} diff --git a/tests/specs/install/install_add_dev_existing/package.json.out b/tests/specs/install/install_add_dev_existing/package.json.out new file mode 100644 index 00000000000000..866724397f1903 --- /dev/null +++ b/tests/specs/install/install_add_dev_existing/package.json.out @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "@denotest/esm-basic": "^1.0.0" + } +}