diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-08-18 23:01:39 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-19 03:01:39 +0000 |
commit | 526f39fbb9dacce12c69d24a55798d0bde8f2707 (patch) | |
tree | ca4891a8f8ca6e66ce8298e57218f19b05111f8f /tests | |
parent | 28bebce54445f248614eca493cff6b8d3659df40 (diff) |
feat(FUTURE): terse lockfile (v4) (#25059)
Diffstat (limited to 'tests')
8 files changed, 87 insertions, 82 deletions
diff --git a/tests/integration/check_tests.rs b/tests/integration/check_tests.rs index b560b352e..57c38522f 100644 --- a/tests/integration/check_tests.rs +++ b/tests/integration/check_tests.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_lockfile::NewLockfileOptions; use test_util as util; use test_util::itest; use util::env_vars_for_npm_tests; @@ -361,16 +362,21 @@ fn npm_module_check_then_error() { ]) .run() .skip_output_check(); - let lockfile = temp_dir.path().join("deno.lock"); - let mut lockfile_content = - lockfile.read_json::<deno_lockfile::LockfileContent>(); + let lockfile_path = temp_dir.path().join("deno.lock"); + let mut lockfile = deno_lockfile::Lockfile::new(NewLockfileOptions { + file_path: lockfile_path.to_path_buf(), + content: &lockfile_path.read_to_string(), + overwrite: false, + is_deno_future: false, + }) + .unwrap(); // make the specifier resolve to version 1 - lockfile_content.packages.specifiers.insert( + lockfile.content.packages.specifiers.insert( "npm:@denotest/breaking-change-between-versions".to_string(), "npm:@denotest/breaking-change-between-versions@1.0.0".to_string(), ); - lockfile.write_json(&lockfile_content); + lockfile_path.write(lockfile.as_json_string()); temp_dir.write( "main.ts", "import { oldName } from 'npm:@denotest/breaking-change-between-versions'; console.log(oldName());\n", @@ -381,11 +387,11 @@ fn npm_module_check_then_error() { // now update the lockfile to use version 2 instead, which should cause a // type checking error because the oldName no longer exists - lockfile_content.packages.specifiers.insert( + lockfile.content.packages.specifiers.insert( "npm:@denotest/breaking-change-between-versions".to_string(), "npm:@denotest/breaking-change-between-versions@2.0.0".to_string(), ); - lockfile.write_json(&lockfile_content); + lockfile_path.write(lockfile.as_json_string()); check_command .run() diff --git a/tests/integration/jsr_tests.rs b/tests/integration/jsr_tests.rs index eb951d682..a9397af72 100644 --- a/tests/integration/jsr_tests.rs +++ b/tests/integration/jsr_tests.rs @@ -3,6 +3,7 @@ use deno_core::serde_json::json; use deno_core::serde_json::Value; use deno_lockfile::Lockfile; +use deno_lockfile::NewLockfileOptions; use test_util as util; use url::Url; use util::assert_contains; @@ -141,11 +142,12 @@ console.log(version);"#, .assert_matches_text("0.1.1\n"); let lockfile_path = temp_dir.path().join("deno.lock"); - let mut lockfile = Lockfile::with_lockfile_content( - lockfile_path.to_path_buf(), - &lockfile_path.read_to_string(), - false, - ) + let mut lockfile = Lockfile::new(NewLockfileOptions { + file_path: lockfile_path.to_path_buf(), + content: &lockfile_path.read_to_string(), + overwrite: false, + is_deno_future: false, + }) .unwrap(); *lockfile .content @@ -256,11 +258,12 @@ console.log(version);"#, .assert_matches_text("0.1.1\n"); let lockfile_path = temp_dir.path().join("deno.lock"); - let mut lockfile = Lockfile::with_lockfile_content( - lockfile_path.to_path_buf(), - &lockfile_path.read_to_string(), - false, - ) + let mut lockfile = Lockfile::new(NewLockfileOptions { + file_path: lockfile_path.to_path_buf(), + content: &lockfile_path.read_to_string(), + overwrite: false, + is_deno_future: false, + }) .unwrap(); let pkg_name = "@denotest/no-module-graph@0.1.1"; let original_integrity = get_lockfile_pkg_integrity(&lockfile, pkg_name); diff --git a/tests/specs/install/future_install_local_deno/deno.lock.out b/tests/specs/install/future_install_local_deno/deno.lock.out index fd3d52e42..188de5de9 100644 --- a/tests/specs/install/future_install_local_deno/deno.lock.out +++ b/tests/specs/install/future_install_local_deno/deno.lock.out @@ -1,15 +1,17 @@ { - "version": "3", - "packages": { - "specifiers": { - "jsr:@denotest/add": "jsr:@denotest/add@1.0.0", - "npm:@denotest/esm-basic@^1.0.0": "npm:@denotest/esm-basic@1.0.0" - }, - "jsr": { - "@denotest/add@1.0.0": [WILDCARD] - }, - "npm": { - "@denotest/esm-basic@1.0.0": [WILDCARD] + "version": "4", + "specifiers": { + "jsr:@denotest/add": "jsr:@denotest/add@1.0.0", + "npm:@denotest/esm-basic@^1.0.0": "npm:@denotest/esm-basic@1.0.0" + }, + "jsr": { + "@denotest/add@1.0.0": { + "integrity": "[WILDCARD]" + } + }, + "npm": { + "@denotest/esm-basic@1.0.0": { + "integrity": "[WILDCARD]" } }, "remote": [WILDCARD], diff --git a/tests/specs/install/future_install_node_modules/corrupt.js b/tests/specs/install/future_install_node_modules/corrupt.js index fcc146081..f10384024 100644 --- a/tests/specs/install/future_install_node_modules/corrupt.js +++ b/tests/specs/install/future_install_node_modules/corrupt.js @@ -1,5 +1,5 @@ const lock = JSON.parse(Deno.readTextFileSync("./deno.lock")); -const pkg = lock.packages.npm["@denotest/esm-basic@1.0.0"]; +const pkg = lock.npm["@denotest/esm-basic@1.0.0"]; // Corrupt the integrity hash pkg.integrity = pkg.integrity.slice(0, -1); Deno.writeTextFileSync("./deno.lock", JSON.stringify(lock)); diff --git a/tests/specs/install/future_install_node_modules/deno.lock.out b/tests/specs/install/future_install_node_modules/deno.lock.out index b30232996..c8071adad 100644 --- a/tests/specs/install/future_install_node_modules/deno.lock.out +++ b/tests/specs/install/future_install_node_modules/deno.lock.out @@ -1,14 +1,13 @@ { - "version": "3", - "packages": { - "specifiers": { - "npm:@denotest/esm-basic": "npm:@denotest/esm-basic@1.0.0" - }, - "npm": { - "@denotest/esm-basic@1.0.0": [WILDCARD] + "version": "4", + "specifiers": { + "npm:@denotest/esm-basic": "npm:@denotest/esm-basic@1.0.0" + }, + "npm": { + "@denotest/esm-basic@1.0.0": { + "integrity": "[WILDCARD]" } }, - "remote": {}, "workspace": { "packageJson": { "dependencies": [ diff --git a/tests/specs/lockfile/frozen_lockfile/__test__.jsonc b/tests/specs/lockfile/frozen_lockfile/__test__.jsonc index 76712a913..8faa45b4e 100644 --- a/tests/specs/lockfile/frozen_lockfile/__test__.jsonc +++ b/tests/specs/lockfile/frozen_lockfile/__test__.jsonc @@ -60,10 +60,16 @@ "error_when_package_json_changed": { "steps": [ { + "envs": { + "DENO_FUTURE": "1" + }, "args": "cache add.ts", "output": "[WILDCARD]" }, { + "envs": { + "DENO_FUTURE": "1" + }, "args": [ "eval", "Deno.writeTextFileSync(\"package.json\", JSON.stringify({ dependencies: { \"@denotest/bin\": \"0.7.0\" } }))" @@ -71,6 +77,9 @@ "output": "" }, { + "envs": { + "DENO_FUTURE": "1" + }, "args": "cache --frozen add.ts", "output": "frozen_package_json_changed.out", "exitCode": 1 diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed.out b/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed.out index 066aa2303..60a01158d 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed.out @@ -1,25 +1,18 @@ Download http://localhost:4260/@denotest/bin -error: The lockfile is out of date. Run `deno cache --frozen=false` or rerun with `--frozen=false` to update it. +error: The lockfile is out of date. Run `deno cache --frozen=false`, `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: - 5 | - "npm:@denotest/add@1": "npm:@denotest/add@1.0.0" - 5 | + "npm:@denotest/add@1": "npm:@denotest/add@1.0.0", - 6 | + "npm:@denotest/bin@0.7.0": "npm:@denotest/bin@0.7.0" -11 | - } -12 | - } -13 | - }, -14 | - "remote": {} -12 | + }, -13 | + "@denotest/bin@0.7.0": { -14 | + "integrity": "[WILDCARD]", -15 | + "dependencies": {} -16 | + } -17 | + } -18 | + }, -19 | + "remote": {}, -20 | + "workspace": { -21 | + "packageJson": { -22 | + "dependencies": [ -23 | + "npm:@denotest/bin@0.7.0" -24 | + ] -25 | + } -26 | + } + 4 | - "npm:@denotest/add@1": "npm:@denotest/add@1.0.0" + 4 | + "npm:@denotest/add@1": "npm:@denotest/add@1.0.0", + 5 | + "npm:@denotest/bin@0.7.0": "npm:@denotest/bin@0.7.0" + 9 | - } +10 | + }, +11 | + "@denotest/bin@0.7.0": { +12 | + "integrity": "[WILDLINE]" +13 | + } +14 | + }, +15 | + "workspace": { +16 | + "packageJson": { +17 | + "dependencies": [ +18 | + "npm:@denotest/bin@0.7.0" +19 | + ] +20 | + } diff --git a/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed_install.out b/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed_install.out index 6b7d1dc5f..397179596 100644 --- a/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed_install.out +++ b/tests/specs/lockfile/frozen_lockfile/frozen_package_json_changed_install.out @@ -1,24 +1,17 @@ error: The lockfile is out of date. Run `deno cache --frozen=false`, `deno install --frozen=false`, or rerun with `--frozen=false` to update it. changes: - 5 | - "npm:@denotest/add@1": "npm:@denotest/add@1.0.0" - 5 | + "npm:@denotest/add@1": "npm:@denotest/add@1.0.0", - 6 | + "npm:@denotest/bin@0.7.0": "npm:@denotest/bin@0.7.0" -11 | - } -12 | - } -13 | - }, -14 | - "remote": {} -12 | + }, -13 | + "@denotest/bin@0.7.0": { -14 | + "integrity": "[WILDCARD]", -15 | + "dependencies": {} -16 | + } -17 | + } -18 | + }, -19 | + "remote": {}, -20 | + "workspace": { -21 | + "packageJson": { -22 | + "dependencies": [ -23 | + "npm:@denotest/bin@0.7.0" -24 | + ] -25 | + } -26 | + } + 4 | - "npm:@denotest/add@1": "npm:@denotest/add@1.0.0" + 4 | + "npm:@denotest/add@1": "npm:@denotest/add@1.0.0", + 5 | + "npm:@denotest/bin@0.7.0": "npm:@denotest/bin@0.7.0" + 9 | - } +10 | + }, +11 | + "@denotest/bin@0.7.0": { +12 | + "integrity": "[WILDLINE]" +13 | + } +14 | + }, +15 | + "workspace": { +16 | + "packageJson": { +17 | + "dependencies": [ +18 | + "npm:@denotest/bin@0.7.0" +19 | + ] +20 | + } |