diff options
| author | Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> | 2024-05-23 12:31:05 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-23 12:31:05 -0700 |
| commit | 5de30c53239ac74843725d981afc0bb8c45bdf16 (patch) | |
| tree | 5e806923d8806d6648a9d991eeb3bb05d1df8b4f /tests/specs/install/future_install_node_modules/__test__.jsonc | |
| parent | 20dad295e2e0961932b05d34b29b07ee97eb0815 (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__.jsonc | 65 |
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 + } + ] } - ] + } } |
