Skip to content

Commit

Permalink
use rstest to generate tests from fixtures
Browse files Browse the repository at this point in the history
  • Loading branch information
aumetra committed Jul 31, 2024
1 parent 089df0e commit 0a34984
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 30 deletions.
35 changes: 34 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/kitsune-type/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
40 changes: 12 additions & 28 deletions crates/kitsune-type/tests/deserialize.rs
Original file line number Diff line number Diff line change
@@ -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::<kitsune_type::ap::actor::Actor>(&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::<kitsune_type::ap::actor::Actor>(&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::<kitsune_type::ap::Object>(&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::<kitsune_type::ap::Object>(&data).expect("Failed to deserialize object");
}

0 comments on commit 0a34984

Please sign in to comment.