diff options
Diffstat (limited to 'pkgs/build-support/node/fetch-npm-deps/src/tests.rs')
-rw-r--r-- | pkgs/build-support/node/fetch-npm-deps/src/tests.rs | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/pkgs/build-support/node/fetch-npm-deps/src/tests.rs b/pkgs/build-support/node/fetch-npm-deps/src/tests.rs index 99e091cbc2c2e..a3317207c42e4 100644 --- a/pkgs/build-support/node/fetch-npm-deps/src/tests.rs +++ b/pkgs/build-support/node/fetch-npm-deps/src/tests.rs @@ -1,7 +1,8 @@ use super::{ - get_hosted_git_url, get_ideal_hash, get_initial_url, to_new_packages, OldPackage, Package, - UrlOrString, + fixup_lockfile, get_hosted_git_url, get_ideal_hash, get_initial_url, to_new_packages, + OldPackage, Package, UrlOrString, }; +use serde_json::json; use std::collections::HashMap; use url::Url; @@ -88,3 +89,53 @@ fn git_shorthand_v1() -> anyhow::Result<()> { Ok(()) } + +#[test] +fn lockfile_fixup() -> anyhow::Result<()> { + let input = json!({ + "lockfileVersion": 2, + "name": "foo", + "packages": { + "": { + + }, + "foo": { + "resolved": "https://github.com/NixOS/nixpkgs", + "integrity": "aaa" + }, + "bar": { + "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", + "integrity": "bbb" + } + } + }); + + let expected = json!({ + "lockfileVersion": 2, + "name": "foo", + "packages": { + "": { + + }, + "foo": { + "resolved": "https://github.com/NixOS/nixpkgs", + "integrity": "aaa" + }, + "bar": { + "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", + } + } + }); + + assert_eq!( + fixup_lockfile(input.as_object().unwrap().clone())?, + Some(expected.as_object().unwrap().clone()) + ); + + assert_eq!( + fixup_lockfile(json!({"lockfileVersion": 1}).as_object().unwrap().clone())?, + None + ); + + Ok(()) +} |