diff --git a/substrate/frame/treasury/src/tests.rs b/substrate/frame/treasury/src/tests.rs index 53c6ae96805b..93b68e6b1c0c 100644 --- a/substrate/frame/treasury/src/tests.rs +++ b/substrate/frame/treasury/src/tests.rs @@ -937,4 +937,42 @@ fn try_state_spends_invariant_3_works() { Err(Other("Spend cannot expire before it becomes valid.")) ); }); -} \ No newline at end of file +} + +#[test] +fn spend_status_without_body_is_noop_encoding() { + let spend_status_a: SpendStatus<(), (), (), (), (), ()> = SpendStatus { + body: (), + asset_kind: (), + amount: (), + beneficiary: (), + valid_from: (), + expire_at: (), + status: PaymentState::Pending, + }; + let spend_status_b: SpendStatus = SpendStatus { + body: 0, + asset_kind: (), + amount: (), + beneficiary: (), + valid_from: (), + expire_at: (), + status: PaymentState::Pending, + }; + assert_eq!( + codec::Encode::encoded_size(&spend_status_a), + codec::Encode::encoded_size(&spend_status_b) - codec::Encode::encoded_size(&0u32), + ); +} + +#[test] +fn proposal_without_body_is_noop_encoding() { + let proposal_a: Proposal<(), (), ()> = + Proposal { body: (), proposer: (), value: (), beneficiary: (), bond: () }; + let proposal_b: Proposal = + Proposal { body: 0, proposer: (), value: (), beneficiary: (), bond: () }; + assert_eq!( + codec::Encode::encoded_size(&proposal_a), + codec::Encode::encoded_size(&proposal_b) - codec::Encode::encoded_size(&0u32), + ); +}