diff --git a/Cargo.lock b/Cargo.lock index cec6c188..a7a2ab02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3957,7 +3957,7 @@ version = "0.0.1-pre.6" dependencies = [ "iso8601-timestamp", "pretty_assertions", - "rust-embed", + "rstest", "serde", "serde_test", "serde_with", @@ -5791,6 +5791,12 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +[[package]] +name = "relative-path" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" + [[package]] name = "rend" version = "0.4.2" @@ -5928,6 +5934,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rstest" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afd55a67069d6e434a95161415f5beeada95a01c7b815508a82dcb0e1593682" +dependencies = [ + "rstest_macros", + "rustc_version", +] + +[[package]] +name = "rstest_macros" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d" +dependencies = [ + "cfg-if", + "glob", + "proc-macro2", + "quote", + "regex", + "relative-path", + "rustc_version", + "syn 2.0.71", + "unicode-ident", +] + [[package]] name = "rust-argon2" version = "2.1.0" diff --git a/crates/kitsune-type/Cargo.toml b/crates/kitsune-type/Cargo.toml index 3d0db320..c9208fc0 100644 --- a/crates/kitsune-type/Cargo.toml +++ b/crates/kitsune-type/Cargo.toml @@ -16,7 +16,7 @@ strum = { version = "0.26.3", features = ["derive"] } [dev-dependencies] pretty_assertions = "1.4.0" -rust-embed = "8.5.0" +rstest = { version = "0.21.0", default-features = false } serde_test = "1" [lints] diff --git a/crates/kitsune-type/tests/deserialize.rs b/crates/kitsune-type/tests/deserialize.rs index 1af638c9..73ad0663 100644 --- a/crates/kitsune-type/tests/deserialize.rs +++ b/crates/kitsune-type/tests/deserialize.rs @@ -1,31 +1,15 @@ -use core::panic; - -use rust_embed::Embed; - -#[derive(Embed)] -#[folder = "tests/actors"] -struct Actors; - -#[derive(Embed)] -#[folder = "tests/objects"] -struct Objects; - -#[test] -fn actors() { - for actor_path in Actors::iter() { - let file = Actors::get(&actor_path).unwrap(); - if let Err(error) = sonic_rs::from_slice::(&file.data) { - panic!("Failed to deserialize actor at path {actor_path}: {error}"); - } - } +use rstest::rstest; +use std::{fs, path::PathBuf}; + +#[rstest] +fn actors(#[files("tests/actors/*")] path: PathBuf) { + let data = fs::read(path).unwrap(); + sonic_rs::from_slice::(&data) + .expect("Failed to deserialize actor"); } -#[test] -fn objects() { - for object_path in Objects::iter() { - let file = Objects::get(&object_path).unwrap(); - if let Err(error) = sonic_rs::from_slice::(&file.data) { - panic!("Failed to deserialize object at path {object_path}: {error}"); - } - } +#[rstest] +fn objects(#[files("tests/objects/*")] path: PathBuf) { + let data = fs::read(path).unwrap(); + sonic_rs::from_slice::(&data).expect("Failed to deserialize object"); }