This commit is contained in:
Brandon Thomas committed 2026-03-20 09:07:51 -04:00
1 parent 8c95f27c60
commit c001085a15
4 files changed
+30 -33

No files matched your search

Generated
+1
View File
@@ -3821,6 +3821,7 @@ dependencies = [
"enums_api",
"enums_db",
"serde_json",
"strum",
"workspace-build-acceleration",
]
@@ -5,8 +5,6 @@
//!
//! Do not change the values here without cause or care.
use std::collections::BTreeSet;
#[cfg(test)]
use strum::EnumCount;
#[cfg(test)]
@@ -26,43 +24,39 @@ pub enum GenerationProvider {
WorldLabs,
}
impl GenerationProvider {
pub fn all_variants() -> BTreeSet<Self> {
BTreeSet::from([
Self::Artcraft,
Self::Fal,
Self::Grok,
Self::Midjourney,
Self::Sora,
Self::WorldLabs,
])
}
}
#[cfg(test)]
mod tests {
use super::GenerationProvider;
use enums_shared::test_helpers::assert_serialization;
use strum::IntoEnumIterator;
mod manual_checks {
use super::*;
#[test]
fn test_serialization() {
assert_serialization(GenerationProvider::Artcraft, "artcraft");
assert_serialization(GenerationProvider::Fal, "fal");
assert_serialization(GenerationProvider::Grok, "grok");
assert_serialization(GenerationProvider::Midjourney, "midjourney");
assert_serialization(GenerationProvider::Sora, "sora");
assert_serialization(GenerationProvider::WorldLabs, "world_labs");
#[test]
fn test_serialization() {
assert_serialization(GenerationProvider::Artcraft, "artcraft");
assert_serialization(GenerationProvider::Fal, "fal");
assert_serialization(GenerationProvider::Grok, "grok");
assert_serialization(GenerationProvider::Midjourney, "midjourney");
assert_serialization(GenerationProvider::Sora, "sora");
assert_serialization(GenerationProvider::WorldLabs, "world_labs");
}
#[test]
fn variants_count_check() {
assert_eq!(GenerationProvider::iter().count(), 6);
}
}
#[test]
fn round_trip_json() {
use strum::IntoEnumIterator;
for variant in GenerationProvider::iter() {
let json = serde_json::to_string(&variant).unwrap();
let back: GenerationProvider = serde_json::from_str(&json).unwrap();
assert_eq!(variant, back);
mod mechanical_checks {
use super::*;
#[test]
fn round_trip_json() {
for variant in GenerationProvider::iter() {
let json = serde_json::to_string(&variant).unwrap();
let back: GenerationProvider = serde_json::from_str(&json).unwrap();
assert_eq!(variant, back);
}
}
}
}
@@ -25,3 +25,4 @@ enums_db.workspace = true
[dev-dependencies]
serde_json.workspace = true
strum.workspace = true
@@ -26,10 +26,11 @@ pub fn generation_provider_to_api(db_value: &Db) -> Api {
#[cfg(test)]
mod tests {
use super::*;
use strum::IntoEnumIterator;
#[test]
fn round_trip_api_to_db() {
for variant in Api::all_variants() {
for variant in Api::iter() {
let db = generation_provider_to_db(&variant);
let back = generation_provider_to_api(&db);
assert_eq!(variant, back);