mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
new tests
This commit is contained in:
1 parent
09b4c4b166
commit
080a33c398
2 files changed
+21
-2
No files matched your search
@@ -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);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! Only imported in tests
|
||||
|
||||
use serde::Serialize;
|
||||
use serde::{Serialize, de::DeserializeOwned};
|
||||
|
||||
pub fn to_json<T: Serialize>(t: &T) -> String {
|
||||
serde_json::to_string(t)
|
||||
@@ -13,3 +13,12 @@ pub fn to_json<T: Serialize>(t: &T) -> String {
|
||||
pub fn assert_serialization<T: Serialize>(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<T: DeserializeOwned + PartialEq + std::fmt::Debug>(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);
|
||||
}
|
||||
Reference in new issue
Block a user