Use serde_json instead of json to get browser-ui-test version

This commit is contained in:
Guillaume Gomez 2025-03-21 12:14:38 +01:00
parent a7aaef1e85
commit 9114905a93
3 changed files with 12 additions and 20 deletions

7
Cargo.lock generated
View file

@ -1076,12 +1076,6 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "json"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
[[package]]
name = "kqueue"
version = "1.0.8"
@ -1225,7 +1219,6 @@ dependencies = [
"handlebars",
"hex",
"ignore",
"json",
"log",
"memchr",
"notify",

View file

@ -59,7 +59,6 @@ ammonia = { version = "4.0.0", optional = true }
[dev-dependencies]
assert_cmd = "2.0.11"
json = "0.12.4"
predicates = "3.0.3"
select = "0.6.0"
semver = "1.0.17"

View file

@ -1,3 +1,4 @@
use serde_json::Value;
use std::collections::HashSet;
use std::env::current_dir;
use std::fs::{read_dir, read_to_string, remove_dir_all};
@ -28,18 +29,17 @@ fn get_available_browser_ui_test_version() -> Option<String> {
fn expected_browser_ui_test_version() -> String {
let content = read_to_string("package.json").expect("failed to read `package.json`");
let json = json::parse(&content).expect("invalid JSON");
if let json::JsonValue::Object(obj) = json {
if let Some(json::JsonValue::Object(deps)) = obj.get("dependencies") {
if let Some(version) = deps
.get("browser-ui-test")
.and_then(|version| version.as_str())
{
return version.trim().to_string();
}
}
}
panic!("failed to retrieved `browser-ui-test` version");
let v: Value = serde_json::from_str(&content).expect("failed to parse `package.json`");
let Some(dependencies) = v.get("dependencies") else {
panic!("Missing `dependencies` key in `package.json`");
};
let Some(browser_ui_test) = dependencies.get("browser-ui-test") else {
panic!("Missing `browser-ui-test` key in \"dependencies\" object in `package.json`");
};
let Value::String(version) = browser_ui_test else {
panic!("`browser-ui-test` version is not a string");
};
version.trim().to_string()
}
fn main() {