summaryrefslogtreecommitdiff
path: root/tests/specs/install/future_install_node_modules/__test__.jsonc
diff options
context:
space:
mode:
authorNathan Whitaker <17734409+nathanwhit@users.noreply.github.com>2024-05-23 12:31:05 -0700
committerGitHub <noreply@github.com>2024-05-23 12:31:05 -0700
commit5de30c53239ac74843725d981afc0bb8c45bdf16 (patch)
tree5e806923d8806d6648a9d991eeb3bb05d1df8b4f /tests/specs/install/future_install_node_modules/__test__.jsonc
parent20dad295e2e0961932b05d34b29b07ee97eb0815 (diff)
fix(cli): Support deno.lock with only package.json present + fix DENO_FUTURE install interactions with lockfile (#23918)
Fixes #23571. Previously, we required a `deno.json` to be present (or the `--lock` flag) in order for us to resolve a `deno.lock` file. This meant that if you were using deno in an npm-first project deno wouldn't use a lockfile. Additionally, while I was fixing that, I discovered there were a couple bugs keeping the future `install` command from using a lockfile. With this PR, `install` will actually resolve the lockfile (or create one if not present), and update it if it's not up-to-date. This also speeds up `deno install`, as we can use the lockfile to skip work during npm resolution.
Diffstat (limited to 'tests/specs/install/future_install_node_modules/__test__.jsonc')
-rw-r--r--tests/specs/install/future_install_node_modules/__test__.jsonc65
1 files changed, 52 insertions, 13 deletions
diff --git a/tests/specs/install/future_install_node_modules/__test__.jsonc b/tests/specs/install/future_install_node_modules/__test__.jsonc
index eb780d962..571216557 100644
--- a/tests/specs/install/future_install_node_modules/__test__.jsonc
+++ b/tests/specs/install/future_install_node_modules/__test__.jsonc
@@ -1,17 +1,56 @@
{
- "tempDir": true,
- "envs": {
- "DENO_FUTURE": "1"
- },
- "steps": [
- {
- "args": "install",
- "output": "install.out"
+ "tests": {
+ "install_sets_up_node_modules": {
+ "tempDir": true,
+ "envs": {
+ "DENO_FUTURE": "1"
+ },
+ "steps": [
+ {
+ "args": "install",
+ "output": "install.out"
+ },
+ {
+ // ensure deps are actually cached
+ "args": "run --cached-only main.js",
+ "output": ""
+ },
+ {
+ // check for lockfile
+ "args": [
+ "eval",
+ "console.log(Deno.readTextFileSync('./deno.lock').trim())"
+ ],
+ "output": "deno.lock.out"
+ }
+ ]
},
- {
- // ensure deps are actually cached
- "args": "run --cached-only main.js",
- "output": ""
+ "install_errors_corrupted_lockfile": {
+ "tempDir": true,
+ "envs": {
+ "DENO_FUTURE": "1"
+ },
+ "steps": [
+ {
+ "args": "install",
+ "output": "install.out"
+ },
+ {
+ // Mess up the lockfile
+ "args": [
+ "run",
+ "-A",
+ "corrupt.js"
+ ],
+ "output": ""
+ },
+ {
+ // Run the install again
+ "args": "install",
+ "output": "corrupted.out",
+ "exitCode": 10
+ }
+ ]
}
- ]
+ }
}