51 lines
1.1 KiB
Rust
51 lines
1.1 KiB
Rust
|
use tracing_test::traced_test;
|
||
|
|
||
|
#[test]
|
||
|
#[traced_test]
|
||
|
#[cfg(feature = "json-edit")]
|
||
|
pub fn test_can_update_version_in_jq() {
|
||
|
use cuddle_please_release_strategy::JsonEditOptions;
|
||
|
|
||
|
let dir = tempdir::TempDir::new("can_update_version_in_jq").unwrap();
|
||
|
let dir_path = dir.path();
|
||
|
let json_file = dir_path.join("some-test.json");
|
||
|
let initial_content = r#"{
|
||
|
"some": {
|
||
|
"nested": [
|
||
|
{
|
||
|
"structure": {
|
||
|
"version": "v1.0.1"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
"#;
|
||
|
|
||
|
let expected = r#"{
|
||
|
"some": {
|
||
|
"nested": [
|
||
|
{
|
||
|
"structure": {
|
||
|
"version": "v1.0.2"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
"#;
|
||
|
|
||
|
std::fs::write(&json_file, initial_content).unwrap();
|
||
|
let actual_file = std::fs::read_to_string(&json_file).unwrap();
|
||
|
pretty_assertions::assert_eq!(initial_content, actual_file);
|
||
|
|
||
|
let edit_options = JsonEditOptions {
|
||
|
jq: r#".some.nested[].structure.version="%%version%%""#.into(),
|
||
|
};
|
||
|
|
||
|
edit_options.execute(&json_file, "v1.0.2").unwrap();
|
||
|
|
||
|
let actual_file = std::fs::read_to_string(&json_file).unwrap();
|
||
|
pretty_assertions::assert_eq!(expected, &actual_file);
|
||
|
}
|