//! Verifies that every RPC method name used by this crate still exists as a //! path in the vendored OpenAPI spec, catching typos and upstream renames. const IMPLEMENTED_METHODS: &[&str] = &[ "auth.info", "auth.config", "documents.info", "documents.list", "documents.search", "documents.create", "documents.update", "documents.delete", "collections.list", "collections.info", "collections.documents", "users.list", "users.info", ]; #[test] fn implemented_methods_exist_in_vendored_spec() { let spec_raw = include_str!("../spec/spec3.json"); let spec: serde_json::Value = serde_json::from_str(spec_raw).unwrap(); let paths = spec["paths"] .as_object() .expect("spec should have a `paths` object"); let missing: Vec<&str> = IMPLEMENTED_METHODS .iter() .copied() .filter(|method| !paths.contains_key(&format!("/{method}"))) .collect(); assert!( missing.is_empty(), "methods missing from vendored spec: {missing:?}" ); }