Skip to content

Commit 70382e6

Browse files
committed
fix(domains): BlockVersion deserialization
1 parent 679500a commit 70382e6

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

crates/domains/src/blocks/types.rs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,9 @@ impl From<FuelCoreConsensus> for Consensus {
175175
#[derive(
176176
Debug, Clone, Eq, PartialEq, Serialize, Deserialize, utoipa::ToSchema,
177177
)]
178-
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
178+
#[serde(rename_all = "snake_case")]
179179
pub enum BlockVersion {
180+
#[serde(alias = "V1", alias = "v1")]
180181
V1,
181182
}
182183

@@ -235,3 +236,32 @@ impl MockBlock {
235236
Self::build(height.into())
236237
}
237238
}
239+
240+
#[cfg(test)]
241+
mod tests {
242+
use serde_json::{json, Value};
243+
244+
use super::*;
245+
246+
#[test]
247+
fn test_block_version_deserialization() {
248+
// Test uppercase "V1"
249+
let uppercase = r#""V1""#;
250+
let version: BlockVersion = serde_json::from_str(uppercase).unwrap();
251+
assert_eq!(version, BlockVersion::V1);
252+
253+
// Test lowercase "v1"
254+
let lowercase = r#""v1""#;
255+
let version: BlockVersion = serde_json::from_str(lowercase).unwrap();
256+
assert_eq!(version, BlockVersion::V1);
257+
258+
// Test within a JSON object
259+
let json_obj = json!({
260+
"version": "V1"
261+
});
262+
let parsed: Value = serde_json::from_value(json_obj).unwrap();
263+
let version: BlockVersion =
264+
serde_json::from_value(parsed["version"].clone()).unwrap();
265+
assert_eq!(version, BlockVersion::V1);
266+
}
267+
}

0 commit comments

Comments
 (0)