From 080a33c398fb199e430f5bb1ecc8f4ade83d0fd8 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 20 Mar 2026 09:22:30 -0400 Subject: [PATCH] new tests --- .../src/common/generation/generation_provider.rs | 12 +++++++++++- .../schema/public/enums_shared/src/test_helpers.rs | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/crates/schema/public/enums_api/src/common/generation/generation_provider.rs b/crates/schema/public/enums_api/src/common/generation/generation_provider.rs index 1b00c5765f..9ab80d48ab 100644 --- a/crates/schema/public/enums_api/src/common/generation/generation_provider.rs +++ b/crates/schema/public/enums_api/src/common/generation/generation_provider.rs @@ -24,7 +24,7 @@ pub enum GenerationProvider { #[cfg(test)] mod tests { use super::GenerationProvider; - use enums_shared::test_helpers::assert_serialization; + use enums_shared::test_helpers::{assert_serialization, assert_deserialization}; use strum::IntoEnumIterator; mod manual_checks { use super::*; @@ -38,6 +38,16 @@ mod tests { assert_serialization(GenerationProvider::Sora, "sora"); assert_serialization(GenerationProvider::WorldLabs, "world_labs"); } + + #[test] + fn test_deserialization() { + assert_deserialization("artcraft", GenerationProvider::Artcraft); + assert_deserialization("fal", GenerationProvider::Fal); + assert_deserialization("grok", GenerationProvider::Grok); + assert_deserialization("midjourney", GenerationProvider::Midjourney); + assert_deserialization("sora", GenerationProvider::Sora); + assert_deserialization("world_labs", GenerationProvider::WorldLabs); + } #[test] fn variants_count_check() { assert_eq!(GenerationProvider::iter().count(), 6); diff --git a/crates/schema/public/enums_shared/src/test_helpers.rs b/crates/schema/public/enums_shared/src/test_helpers.rs index 216bb69471..b8a6b62911 100644 --- a/crates/schema/public/enums_shared/src/test_helpers.rs +++ b/crates/schema/public/enums_shared/src/test_helpers.rs @@ -1,6 +1,6 @@ //! Only imported in tests -use serde::Serialize; +use serde::{Serialize, de::DeserializeOwned}; pub fn to_json(t: &T) -> String { serde_json::to_string(t) @@ -13,3 +13,12 @@ pub fn to_json(t: &T) -> String { pub fn assert_serialization(t: T, expected: &str) { assert_eq!(&to_json(&t), expected); } + +/// Assert that a JSON string deserializes to the expected value. +/// This is useful for ensuring stability of deserialization. +pub fn assert_deserialization(json_str: &str, expected: T) { + let quoted = format!("\"{}\"", json_str); + let actual: T = serde_json::from_str("ed) + .unwrap_or_else(|e| panic!("failed to deserialize {:?}: {}", json_str, e)); + assert_eq!(actual, expected); +}