Skip to main content
Glama

Convex MCP server

Official
by get-convex
tests.rs2.02 kB
use cmd_util::env::env_config; use proptest::prelude::*; use value::{ sorting::write_sort_key, ConvexValue, }; use super::{ ByteBuffer, OpenedValue, PackedValue, }; fn roundtrip_test(v: ConvexValue) { let buf = PackedValue::pack(&v); let packed = buf.open().unwrap(); let v2 = ConvexValue::try_from(packed).unwrap(); assert_eq!(v, v2); } fn clone_test(v: OpenedValue<ByteBuffer>) -> anyhow::Result<()> { match v { OpenedValue::Array(ref a) => { for value_r in a.iter() { clone_test(value_r?)?; } }, OpenedValue::Set(ref s) => { for value_r in s.iter() { clone_test(value_r?)?; } }, OpenedValue::Map(ref m) => { for r in m.iter() { let (k, v) = r?; clone_test(k)?; clone_test(v)?; } }, OpenedValue::Object(ref o) => { for r in o.iter() { let (_, v) = r?; clone_test(v)?; } }, _ => (), } let cloned = v.clone(); assert_eq!(ConvexValue::try_from(v)?, ConvexValue::try_from(cloned)?); Ok(()) } proptest! { #![proptest_config( ProptestConfig { cases: 256 * env_config("CONVEX_PROPTEST_MULTIPLIER", 1), failure_persistence: None, ..ProptestConfig::default() } )] #[test] fn proptest_roundtrip(v in any::<ConvexValue>()) { roundtrip_test(v); } #[test] fn proptest_clone(v in any::<ConvexValue>()) { let p = PackedValue::pack(&v).open().unwrap(); clone_test(p).unwrap(); } #[test] fn test_sort_key_roundtrips(v in any::<ConvexValue>()) { let packed_value = PackedValue::pack(&v); let mut sort_key = vec![]; write_sort_key(packed_value.as_ref().open().unwrap(), &mut sort_key).unwrap(); assert_eq!(ConvexValue::read_sort_key(&mut &sort_key[..], ).unwrap(), v); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server