//! Backup container round-trip + error-path coverage. use relicario_core::backup::{pack_backup, unpack_backup, BackupInput, BackupOutput}; fn empty_input() -> BackupInput<'static> { BackupInput { salt: &[0u8; 32], params_json: r#"{"format_version":2,"kdf":{"argon2_m":256,"argon2_t":1,"argon2_p":1},"aead":"xchacha20poly1305","salt_path":".relicario/salt"}"#, devices_json: "[]", manifest_enc: &[], settings_enc: &[], items: vec![], attachments: vec![], reference_jpg: None, git_archive: None, } } #[test] fn empty_vault_round_trip() { let out = pack_backup(empty_input(), "test-passphrase-1234").unwrap(); assert_eq!(&out[..4], b"RBAK", "magic header"); assert_eq!(out[4], 0x01, "format version"); let unpacked = unpack_backup(&out, "test-passphrase-1234").unwrap(); assert_eq!(unpacked.salt, [0u8; 32]); assert!(unpacked.devices_json.contains("[]")); assert!(unpacked.items.is_empty()); assert!(unpacked.attachments.is_empty()); assert!(unpacked.reference_jpg.is_none()); assert!(unpacked.git_archive.is_none()); }