Skip to content

Commit

Permalink
refactor(cli): Remove unnecessary conversion into BTreeMap (denoland#…
Browse files Browse the repository at this point in the history
…8498)

This commit removes unnecessary conversion into BTreeMap. The value
that gets converted into BTreeMap is _originally_ BTreeMap, so this
conversion is just superfluous.

Additionally, a test is added so that we can make sure the keys in the
emitted lockfile are sorted alphabetically.
  • Loading branch information
magurotuna authored Nov 26, 2020
1 parent a1a806a commit 60e980c
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions cli/lockfile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@ impl Lockfile {
if !self.write {
return Ok(());
}
// Will perform sort so output is deterministic
let map: BTreeMap<_, _> = self.map.iter().collect();
let j = json!(map);
let j = json!(&self.map);
let s = serde_json::to_string_pretty(&j).unwrap();
let mut f = std::fs::OpenOptions::new()
.write(true)
Expand Down Expand Up @@ -192,9 +190,30 @@ mod tests {
.read_to_string(&mut contents)
.expect("Unable to read the file");

assert!(contents.contains(
"fedebba9bb82cce293196f54b21875b649e457f0eaf55556f1e318204947a28f"
)); // sha-256 hash of the source 'Here is some source code'
let contents_json =
serde_json::from_str::<serde_json::Value>(&contents).unwrap();
let object = contents_json.as_object().unwrap();

assert_eq!(
object
.get("https://deno.land/[email protected]/textproto/mod.ts")
.and_then(|v| v.as_str()),
// sha-256 hash of the source 'Here is some source code'
Some("fedebba9bb82cce293196f54b21875b649e457f0eaf55556f1e318204947a28f")
);

// confirm that keys are sorted alphabetically
let mut keys = object.keys().map(|k| k.as_str());
assert_eq!(
keys.next(),
Some("https://deno.land/[email protected]/async/delay.ts")
);
assert_eq!(keys.next(), Some("https://deno.land/[email protected]/io/util.ts"));
assert_eq!(
keys.next(),
Some("https://deno.land/[email protected]/textproto/mod.ts")
);
assert!(keys.next().is_none());

teardown(temp_dir);
}
Expand Down

0 comments on commit 60e980c

Please sign in to comment.