aboutsummaryrefslogtreecommitdiff
path: root/apps/fparkan-cli/src/main.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-03 20:44:26 +0300
committerValentin Popov <valentin@popov.link>2026-07-03 20:44:26 +0300
commitf34c422b20fd1fc1b4bf71ebf448b3c42f104226 (patch)
treec6478b2e605eecbab2a29d645d227ec8befa61ca /apps/fparkan-cli/src/main.rs
parenta89bd9af2aa6a4c85a7dce5cbc61eb38c6a91f49 (diff)
downloadfparkan-f34c422b20fd1fc1b4bf71ebf448b3c42f104226.tar.xz
fparkan-f34c422b20fd1fc1b4bf71ebf448b3c42f104226.zip
test: realign stage 2 acceptance coverage
Diffstat (limited to 'apps/fparkan-cli/src/main.rs')
-rw-r--r--apps/fparkan-cli/src/main.rs43
1 files changed, 39 insertions, 4 deletions
diff --git a/apps/fparkan-cli/src/main.rs b/apps/fparkan-cli/src/main.rs
index e96f787..3e40f41 100644
--- a/apps/fparkan-cli/src/main.rs
+++ b/apps/fparkan-cli/src/main.rs
@@ -255,7 +255,12 @@ fn prototype_inspect_json(
textures: report.texture_resolved_count,
lightmaps: report.lightmap_resolved_count,
is_success: report.is_success(),
- failures: report.failures.iter().take(16).map(graph_failure_output).collect(),
+ failures: report
+ .failures
+ .iter()
+ .take(16)
+ .map(graph_failure_output)
+ .collect(),
})
}
@@ -366,9 +371,7 @@ fn serialize_json<T: Serialize>(value: &T) -> Result<String, String> {
serde_json::to_string(value).map_err(|err| err.to_string())
}
-fn graph_failure_output(
- failure: &fparkan_prototype::PrototypeGraphFailure,
-) -> GraphFailureOutput {
+fn graph_failure_output(failure: &fparkan_prototype::PrototypeGraphFailure) -> GraphFailureOutput {
GraphFailureOutput {
root_index: failure.root_index,
edge: prototype_graph_edge_label(failure.edge),
@@ -472,4 +475,36 @@ mod tests {
"{\"schema_version\":\"fparkan-prototype-inspect-v1\",\"key\":\"root\",\"roots\":1,\"node_count\":0,\"edge_count\":0,\"prototype_requests\":1,\"resolved\":1,\"unit_references\":0,\"unit_components\":0,\"direct_references\":1,\"wear_requests\":0,\"wear\":0,\"materials\":0,\"textures\":0,\"lightmaps\":0,\"is_success\":true,\"failures\":[]}"
);
}
+
+ #[test]
+ fn mission_graph_json_has_canonical_field_order() {
+ let json = serialize_json(&MissionGraphOutput {
+ schema_version: MISSION_GRAPH_SCHEMA,
+ mission: "MISSIONS/Autodemo.00/data.tma".to_string(),
+ objects: 2,
+ paths: 3,
+ clans: 4,
+ extras: 5,
+ roots: 6,
+ node_count: 7,
+ edge_count: 8,
+ direct_references: 9,
+ unit_references: 10,
+ unit_components: 11,
+ prototype_requests: 12,
+ wear_requests: 13,
+ wear: 14,
+ materials: 15,
+ textures: 16,
+ lightmaps: 17,
+ is_success: true,
+ failures: 0,
+ })
+ .expect("serialize");
+
+ assert_eq!(
+ json,
+ "{\"schema_version\":\"fparkan-mission-graph-v1\",\"mission\":\"MISSIONS/Autodemo.00/data.tma\",\"objects\":2,\"paths\":3,\"clans\":4,\"extras\":5,\"roots\":6,\"node_count\":7,\"edge_count\":8,\"direct_references\":9,\"unit_references\":10,\"unit_components\":11,\"prototype_requests\":12,\"wear_requests\":13,\"wear\":14,\"materials\":15,\"textures\":16,\"lightmaps\":17,\"is_success\":true,\"failures\":0}"
+ );
+ }
}