rhi

Coordinated trade for connected markets
git clone https://radroots.dev/git/rhi.git
Log | Files | Refs | README | LICENSE

services_hardening_admin_common.rs (2971B)


      1 #![forbid(unsafe_code)]
      2 
      3 use std::collections::BTreeSet;
      4 
      5 use serde_json::Value;
      6 
      7 const COMMON_CONTRACT: &str = include_str!("../contracts/services_hardening/admin_common.v1.json");
      8 const OPERATOR_CONTRACT: &str =
      9     include_str!("../contracts/services_hardening/operator_contract.v1.json");
     10 
     11 #[test]
     12 fn common_route_inventory_is_an_exact_ordered_subset() {
     13     let common: Value = serde_json::from_str(COMMON_CONTRACT).expect("common admin contract");
     14     let operator: Value = serde_json::from_str(OPERATOR_CONTRACT).expect("operator contract");
     15     assert_eq!(common["schema"], "radroots.rhi.admin-common.v1");
     16     assert_eq!(common["contract_version"], 1);
     17     assert_eq!(common["final_inventory"]["route_count"], 20);
     18     assert_eq!(common["final_inventory"]["model_count"], 33);
     19 
     20     let registered = common["registered_routes"]
     21         .as_array()
     22         .expect("registered routes")
     23         .iter()
     24         .map(|value| value.as_str().expect("operation ID"))
     25         .collect::<Vec<_>>();
     26     assert_eq!(
     27         registered,
     28         [
     29             "radroots.rhi.status.get.v1",
     30             "radroots.rhi.config.effective.get.v1",
     31             "radroots.rhi.identity.status.get.v1",
     32             "radroots.rhi.identity.public.get.v1",
     33             "radroots.rhi.state.status.get.v1",
     34             "radroots.rhi.state.backup.create.v1",
     35             "radroots.rhi.metrics.snapshot.get.v1",
     36         ]
     37     );
     38     assert_eq!(registered.iter().copied().collect::<BTreeSet<_>>().len(), 7);
     39     let governed = operator["admin"]["routes"]
     40         .as_array()
     41         .expect("operator routes")
     42         .iter()
     43         .map(|route| route["operation_id"].as_str().expect("operation ID"))
     44         .collect::<BTreeSet<_>>();
     45     assert!(
     46         registered
     47             .iter()
     48             .all(|operation| governed.contains(operation))
     49     );
     50 }
     51 
     52 #[test]
     53 fn common_checkpoint_contract_remains_sealed_bounded_and_partial() {
     54     let common: Value = serde_json::from_str(COMMON_CONTRACT).expect("common admin contract");
     55     assert_eq!(common["shared_transport"], "radroots_service_host");
     56     assert_eq!(common["authority"]["raw_shared_router_public"], false);
     57     assert_eq!(common["authority"]["raw_listener_public"], false);
     58     assert_eq!(common["authority"]["raw_json_handler_public"], false);
     59     assert_eq!(common["authority"]["runtime_context_required"], true);
     60     assert_eq!(common["wire"]["duplicate_fields"], "reject");
     61     assert_eq!(common["wire"]["null"], "forbidden");
     62     assert_eq!(common["wire"]["response_body_max_utf8_bytes"], 1_048_576);
     63     assert_eq!(common["effects"]["router_construction_performs_io"], false);
     64     assert_eq!(common["effects"]["bind_spawns_task"], false);
     65     assert_eq!(common["effects"]["tcp_admin"], false);
     66     assert_eq!(
     67         common["historical_deferred_route_groups"],
     68         serde_json::json!([
     69             "domain_queries_and_mutations_step_207",
     70             "reserved_identity_mutations_removed_step_208"
     71         ])
     72     );
     73 }