220 unmodified lines
Expand all
#[cfg(feature = "relay")]
#[derive(serde::Serialize)]
#[serde(rename_all = "camelCase")]
struct CommitWithoutTooBig<'a> {
struct CommitWithoutDeprecated<'a> {
blobs: Vec<CidLink>,
#[serde(with = "jacquard_common::serde_bytes_helper")]
blocks: bytes::Bytes,
commit: CidLink,
ops: Vec<RepoOp<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
prev_data: Option<CidLink>,
rebase: bool,
repo: Did,
rev: Tid,
seq: i64,
since: Option<Tid>,
}
#[cfg(feature = "relay")]
#[test]
fn test_decode_commit_missing_too_big_defaults_false() {
fn test_decode_commit_missing_rebase_and_too_big_defaults_false() {
const FRAME: &[u8] = b"omF0ZyNjb21taXRib3ABq2NvcHOAY3Jldm0zbWdkeWNmdWIyeTIyY3NlcRsAAAACZ8sHJmRyZXBveCBkaWQ6cGxjOmpxM3p2cmI1ZXdnMnFndXA3M3Fzb3V6ZWR0aW1leBsyMDI2LTAzLTA1VDE1OjQ3OjU0LjcxNjMyOFplYmxvYnOAZXNpbmNlYGZibG9ja3NZAUk6omVyb290c4HYKlglAAFxEiAlaO/rjabPL4/e2QlxkoxzCCwv69hE4P3Vdxpv7f6uEWd2ZXJzaW9uAeABAXESICVo7+uNps8vj97ZCXGSjHMILC/r2ETg/dV3Gm/t/q4RpmNkaWR4IGRpZDpwbGM6anEzenZyYjVld2cycWd1cDczcXNvdXplY3Jldm0zbWdkeWNmdWIyeTIyY3NpZ1hAwKfrZtwwbN7dW0uSbviOs65NWQRvlS9Qc7oRtiorybMTEYxKGJaFK2kHIMEWIJqumb4751En2aJEpsilWlaQOWRkYXRh2CpYJQABcRIgnf7+Yd126j3K5QI4gLCDedV63yBILW/b4nWSifZHZ3tkcHJldvZndmVyc2lvbgMrAXESIJ3+/mHdduo9yuUCOICwg3nVet8gSC1v2+J1kon2R2d7omFlgGFs9mZjb21taXTYKlglAAFxEiAlaO/rjabPL4/e2QlxkoxzCCwv69hE4P3Vdxpv7f6uEWZyZWJhc2X0ZnRvb0JpZ/Q=";
let bytes = data_encoding::BASE64.decode(FRAME).unwrap();
let SubscribeReposMessage::Commit(c) = decode_frame(&bytes).unwrap() else {
panic!("expected Commit");
};
let frame = super::encode_frame(
"#commit",
&CommitWithoutTooBig {
&CommitWithoutDeprecated {
blobs: c.blobs.clone(),
blocks: c.blocks.clone(),
commit: c.commit.clone(),
ops: c.ops.clone(),
prev_data: c.prev_data.clone(),
rebase: c.rebase,
repo: c.repo.clone(),
rev: c.rev,
seq: c.seq,
since: c.since,
let SubscribeReposMessage::Commit(c) = decode_frame(&frame).unwrap() else {
panic!("expected Commit");
};
assert!(!c.rebase, "missing rebase should default to false");
assert!(!c.too_big, "missing tooBig should default to false");
}
#[cfg(feature = "relay")]